define private i64 @mul32x32L(i32 %r2, i32 %r3)
{
%r4 = zext i32 %r2 to i64
%r5 = zext i32 %r3 to i64
%r6 = mul i64 %r4, %r5
ret i64 %r6
}
define private i32 @extractHigh32(i64 %r2)
{
%r3 = lshr i64 %r2, 32
%r4 = trunc i64 %r3 to i32
ret i32 %r4
}
define private i64 @mulPos32x32(i32* noalias  %r2, i32 %r3, i32 %r4)
{
%r5 = getelementptr i32, i32* %r2, i32 %r4
%r6 = load i32, i32* %r5
%r7 = call i64 @mul32x32L(i32 %r6, i32 %r3)
ret i64 %r7
}
define i192 @makeNIST_P192L()
{
%r8 = sub i64 0, 1
%r9 = sub i64 0, 2
%r10 = sub i64 0, 1
%r11 = zext i64 %r8 to i192
%r12 = zext i64 %r9 to i192
%r13 = zext i64 %r10 to i192
%r14 = shl i192 %r12, 64
%r15 = shl i192 %r13, 128
%r16 = add i192 %r11, %r14
%r17 = add i192 %r16, %r15
ret i192 %r17
}
define void @mcl_fpDbl_mod_NIST_P192L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3)
{
%r4 = load i32, i32* %r2
%r5 = zext i32 %r4 to i64
%r7 = getelementptr i32, i32* %r2, i32 1
%r8 = load i32, i32* %r7
%r9 = zext i32 %r8 to i64
%r10 = shl i64 %r9, 32
%r11 = or i64 %r5, %r10
%r12 = zext i64 %r11 to i96
%r14 = getelementptr i32, i32* %r2, i32 2
%r15 = load i32, i32* %r14
%r16 = zext i32 %r15 to i96
%r17 = shl i96 %r16, 64
%r18 = or i96 %r12, %r17
%r19 = zext i96 %r18 to i128
%r21 = getelementptr i32, i32* %r2, i32 3
%r22 = load i32, i32* %r21
%r23 = zext i32 %r22 to i128
%r24 = shl i128 %r23, 96
%r25 = or i128 %r19, %r24
%r26 = zext i128 %r25 to i160
%r28 = getelementptr i32, i32* %r2, i32 4
%r29 = load i32, i32* %r28
%r30 = zext i32 %r29 to i160
%r31 = shl i160 %r30, 128
%r32 = or i160 %r26, %r31
%r33 = zext i160 %r32 to i192
%r35 = getelementptr i32, i32* %r2, i32 5
%r36 = load i32, i32* %r35
%r37 = zext i32 %r36 to i192
%r38 = shl i192 %r37, 160
%r39 = or i192 %r33, %r38
%r40 = zext i192 %r39 to i256
%r42 = getelementptr i32, i32* %r2, i32 6
%r43 = load i32, i32* %r42
%r44 = zext i32 %r43 to i64
%r46 = getelementptr i32, i32* %r42, i32 1
%r47 = load i32, i32* %r46
%r48 = zext i32 %r47 to i64
%r49 = shl i64 %r48, 32
%r50 = or i64 %r44, %r49
%r51 = zext i64 %r50 to i96
%r53 = getelementptr i32, i32* %r42, i32 2
%r54 = load i32, i32* %r53
%r55 = zext i32 %r54 to i96
%r56 = shl i96 %r55, 64
%r57 = or i96 %r51, %r56
%r58 = zext i96 %r57 to i128
%r60 = getelementptr i32, i32* %r42, i32 3
%r61 = load i32, i32* %r60
%r62 = zext i32 %r61 to i128
%r63 = shl i128 %r62, 96
%r64 = or i128 %r58, %r63
%r65 = zext i128 %r64 to i160
%r67 = getelementptr i32, i32* %r42, i32 4
%r68 = load i32, i32* %r67
%r69 = zext i32 %r68 to i160
%r70 = shl i160 %r69, 128
%r71 = or i160 %r65, %r70
%r72 = zext i160 %r71 to i192
%r74 = getelementptr i32, i32* %r42, i32 5
%r75 = load i32, i32* %r74
%r76 = zext i32 %r75 to i192
%r77 = shl i192 %r76, 160
%r78 = or i192 %r72, %r77
%r79 = zext i192 %r78 to i256
%r80 = shl i192 %r78, 64
%r81 = zext i192 %r80 to i256
%r82 = lshr i192 %r78, 128
%r83 = trunc i192 %r82 to i64
%r84 = zext i64 %r83 to i256
%r85 = or i256 %r81, %r84
%r86 = shl i256 %r84, 64
%r87 = add i256 %r40, %r79
%r88 = add i256 %r87, %r85
%r89 = add i256 %r88, %r86
%r90 = lshr i256 %r89, 192
%r91 = trunc i256 %r90 to i64
%r92 = zext i64 %r91 to i256
%r93 = shl i256 %r92, 64
%r94 = or i256 %r92, %r93
%r95 = trunc i256 %r89 to i192
%r96 = zext i192 %r95 to i256
%r97 = add i256 %r96, %r94
%r98 = call i192 @makeNIST_P192L()
%r99 = zext i192 %r98 to i256
%r100 = sub i256 %r97, %r99
%r101 = lshr i256 %r100, 192
%r102 = trunc i256 %r101 to i1
%r103 = select i1 %r102, i256 %r97, i256 %r100
%r104 = trunc i256 %r103 to i192
%r106 = getelementptr i32, i32* %r1, i32 0
%r107 = trunc i192 %r104 to i32
store i32 %r107, i32* %r106
%r108 = lshr i192 %r104, 32
%r110 = getelementptr i32, i32* %r1, i32 1
%r111 = trunc i192 %r108 to i32
store i32 %r111, i32* %r110
%r112 = lshr i192 %r108, 32
%r114 = getelementptr i32, i32* %r1, i32 2
%r115 = trunc i192 %r112 to i32
store i32 %r115, i32* %r114
%r116 = lshr i192 %r112, 32
%r118 = getelementptr i32, i32* %r1, i32 3
%r119 = trunc i192 %r116 to i32
store i32 %r119, i32* %r118
%r120 = lshr i192 %r116, 32
%r122 = getelementptr i32, i32* %r1, i32 4
%r123 = trunc i192 %r120 to i32
store i32 %r123, i32* %r122
%r124 = lshr i192 %r120, 32
%r126 = getelementptr i32, i32* %r1, i32 5
%r127 = trunc i192 %r124 to i32
store i32 %r127, i32* %r126
ret void
}
define void @mcl_fp_sqr_NIST_P192L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3)
{
%r5 = alloca i32, i32 12
call void @mcl_fpDbl_sqrPre6L(i32* %r5, i32* %r2)
call void @mcl_fpDbl_mod_NIST_P192L(i32* %r1, i32* %r5, i32* %r5)
ret void
}
define void @mcl_fp_mulNIST_P192L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r6 = alloca i32, i32 12
call void @mcl_fpDbl_mulPre6L(i32* %r6, i32* %r2, i32* %r3)
call void @mcl_fpDbl_mod_NIST_P192L(i32* %r1, i32* %r6, i32* %r6)
ret void
}
define void @mcl_fpDbl_mod_NIST_P521L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3)
{
%r4 = load i32, i32* %r2
%r5 = zext i32 %r4 to i64
%r7 = getelementptr i32, i32* %r2, i32 1
%r8 = load i32, i32* %r7
%r9 = zext i32 %r8 to i64
%r10 = shl i64 %r9, 32
%r11 = or i64 %r5, %r10
%r12 = zext i64 %r11 to i96
%r14 = getelementptr i32, i32* %r2, i32 2
%r15 = load i32, i32* %r14
%r16 = zext i32 %r15 to i96
%r17 = shl i96 %r16, 64
%r18 = or i96 %r12, %r17
%r19 = zext i96 %r18 to i128
%r21 = getelementptr i32, i32* %r2, i32 3
%r22 = load i32, i32* %r21
%r23 = zext i32 %r22 to i128
%r24 = shl i128 %r23, 96
%r25 = or i128 %r19, %r24
%r26 = zext i128 %r25 to i160
%r28 = getelementptr i32, i32* %r2, i32 4
%r29 = load i32, i32* %r28
%r30 = zext i32 %r29 to i160
%r31 = shl i160 %r30, 128
%r32 = or i160 %r26, %r31
%r33 = zext i160 %r32 to i192
%r35 = getelementptr i32, i32* %r2, i32 5
%r36 = load i32, i32* %r35
%r37 = zext i32 %r36 to i192
%r38 = shl i192 %r37, 160
%r39 = or i192 %r33, %r38
%r40 = zext i192 %r39 to i224
%r42 = getelementptr i32, i32* %r2, i32 6
%r43 = load i32, i32* %r42
%r44 = zext i32 %r43 to i224
%r45 = shl i224 %r44, 192
%r46 = or i224 %r40, %r45
%r47 = zext i224 %r46 to i256
%r49 = getelementptr i32, i32* %r2, i32 7
%r50 = load i32, i32* %r49
%r51 = zext i32 %r50 to i256
%r52 = shl i256 %r51, 224
%r53 = or i256 %r47, %r52
%r54 = zext i256 %r53 to i288
%r56 = getelementptr i32, i32* %r2, i32 8
%r57 = load i32, i32* %r56
%r58 = zext i32 %r57 to i288
%r59 = shl i288 %r58, 256
%r60 = or i288 %r54, %r59
%r61 = zext i288 %r60 to i320
%r63 = getelementptr i32, i32* %r2, i32 9
%r64 = load i32, i32* %r63
%r65 = zext i32 %r64 to i320
%r66 = shl i320 %r65, 288
%r67 = or i320 %r61, %r66
%r68 = zext i320 %r67 to i352
%r70 = getelementptr i32, i32* %r2, i32 10
%r71 = load i32, i32* %r70
%r72 = zext i32 %r71 to i352
%r73 = shl i352 %r72, 320
%r74 = or i352 %r68, %r73
%r75 = zext i352 %r74 to i384
%r77 = getelementptr i32, i32* %r2, i32 11
%r78 = load i32, i32* %r77
%r79 = zext i32 %r78 to i384
%r80 = shl i384 %r79, 352
%r81 = or i384 %r75, %r80
%r82 = zext i384 %r81 to i416
%r84 = getelementptr i32, i32* %r2, i32 12
%r85 = load i32, i32* %r84
%r86 = zext i32 %r85 to i416
%r87 = shl i416 %r86, 384
%r88 = or i416 %r82, %r87
%r89 = zext i416 %r88 to i448
%r91 = getelementptr i32, i32* %r2, i32 13
%r92 = load i32, i32* %r91
%r93 = zext i32 %r92 to i448
%r94 = shl i448 %r93, 416
%r95 = or i448 %r89, %r94
%r96 = zext i448 %r95 to i480
%r98 = getelementptr i32, i32* %r2, i32 14
%r99 = load i32, i32* %r98
%r100 = zext i32 %r99 to i480
%r101 = shl i480 %r100, 448
%r102 = or i480 %r96, %r101
%r103 = zext i480 %r102 to i512
%r105 = getelementptr i32, i32* %r2, i32 15
%r106 = load i32, i32* %r105
%r107 = zext i32 %r106 to i512
%r108 = shl i512 %r107, 480
%r109 = or i512 %r103, %r108
%r110 = zext i512 %r109 to i544
%r112 = getelementptr i32, i32* %r2, i32 16
%r113 = load i32, i32* %r112
%r114 = zext i32 %r113 to i544
%r115 = shl i544 %r114, 512
%r116 = or i544 %r110, %r115
%r117 = zext i544 %r116 to i576
%r119 = getelementptr i32, i32* %r2, i32 17
%r120 = load i32, i32* %r119
%r121 = zext i32 %r120 to i576
%r122 = shl i576 %r121, 544
%r123 = or i576 %r117, %r122
%r124 = zext i576 %r123 to i608
%r126 = getelementptr i32, i32* %r2, i32 18
%r127 = load i32, i32* %r126
%r128 = zext i32 %r127 to i608
%r129 = shl i608 %r128, 576
%r130 = or i608 %r124, %r129
%r131 = zext i608 %r130 to i640
%r133 = getelementptr i32, i32* %r2, i32 19
%r134 = load i32, i32* %r133
%r135 = zext i32 %r134 to i640
%r136 = shl i640 %r135, 608
%r137 = or i640 %r131, %r136
%r138 = zext i640 %r137 to i672
%r140 = getelementptr i32, i32* %r2, i32 20
%r141 = load i32, i32* %r140
%r142 = zext i32 %r141 to i672
%r143 = shl i672 %r142, 640
%r144 = or i672 %r138, %r143
%r145 = zext i672 %r144 to i704
%r147 = getelementptr i32, i32* %r2, i32 21
%r148 = load i32, i32* %r147
%r149 = zext i32 %r148 to i704
%r150 = shl i704 %r149, 672
%r151 = or i704 %r145, %r150
%r152 = zext i704 %r151 to i736
%r154 = getelementptr i32, i32* %r2, i32 22
%r155 = load i32, i32* %r154
%r156 = zext i32 %r155 to i736
%r157 = shl i736 %r156, 704
%r158 = or i736 %r152, %r157
%r159 = zext i736 %r158 to i768
%r161 = getelementptr i32, i32* %r2, i32 23
%r162 = load i32, i32* %r161
%r163 = zext i32 %r162 to i768
%r164 = shl i768 %r163, 736
%r165 = or i768 %r159, %r164
%r166 = zext i768 %r165 to i800
%r168 = getelementptr i32, i32* %r2, i32 24
%r169 = load i32, i32* %r168
%r170 = zext i32 %r169 to i800
%r171 = shl i800 %r170, 768
%r172 = or i800 %r166, %r171
%r173 = zext i800 %r172 to i832
%r175 = getelementptr i32, i32* %r2, i32 25
%r176 = load i32, i32* %r175
%r177 = zext i32 %r176 to i832
%r178 = shl i832 %r177, 800
%r179 = or i832 %r173, %r178
%r180 = zext i832 %r179 to i864
%r182 = getelementptr i32, i32* %r2, i32 26
%r183 = load i32, i32* %r182
%r184 = zext i32 %r183 to i864
%r185 = shl i864 %r184, 832
%r186 = or i864 %r180, %r185
%r187 = zext i864 %r186 to i896
%r189 = getelementptr i32, i32* %r2, i32 27
%r190 = load i32, i32* %r189
%r191 = zext i32 %r190 to i896
%r192 = shl i896 %r191, 864
%r193 = or i896 %r187, %r192
%r194 = zext i896 %r193 to i928
%r196 = getelementptr i32, i32* %r2, i32 28
%r197 = load i32, i32* %r196
%r198 = zext i32 %r197 to i928
%r199 = shl i928 %r198, 896
%r200 = or i928 %r194, %r199
%r201 = zext i928 %r200 to i960
%r203 = getelementptr i32, i32* %r2, i32 29
%r204 = load i32, i32* %r203
%r205 = zext i32 %r204 to i960
%r206 = shl i960 %r205, 928
%r207 = or i960 %r201, %r206
%r208 = zext i960 %r207 to i992
%r210 = getelementptr i32, i32* %r2, i32 30
%r211 = load i32, i32* %r210
%r212 = zext i32 %r211 to i992
%r213 = shl i992 %r212, 960
%r214 = or i992 %r208, %r213
%r215 = zext i992 %r214 to i1024
%r217 = getelementptr i32, i32* %r2, i32 31
%r218 = load i32, i32* %r217
%r219 = zext i32 %r218 to i1024
%r220 = shl i1024 %r219, 992
%r221 = or i1024 %r215, %r220
%r222 = zext i1024 %r221 to i1056
%r224 = getelementptr i32, i32* %r2, i32 32
%r225 = load i32, i32* %r224
%r226 = zext i32 %r225 to i1056
%r227 = shl i1056 %r226, 1024
%r228 = or i1056 %r222, %r227
%r229 = trunc i1056 %r228 to i521
%r230 = zext i521 %r229 to i544
%r231 = lshr i1056 %r228, 521
%r232 = trunc i1056 %r231 to i544
%r233 = add i544 %r230, %r232
%r234 = lshr i544 %r233, 521
%r236 = and i544 %r234, 1
%r237 = add i544 %r233, %r236
%r238 = trunc i544 %r237 to i521
%r239 = zext i521 %r238 to i544
%r240 = lshr i544 %r239, 512
%r241 = trunc i544 %r240 to i32
%r243 = or i32 %r241, -512
%r244 = lshr i544 %r239, 0
%r245 = trunc i544 %r244 to i32
%r246 = and i32 %r243, %r245
%r247 = lshr i544 %r239, 32
%r248 = trunc i544 %r247 to i32
%r249 = and i32 %r246, %r248
%r250 = lshr i544 %r239, 64
%r251 = trunc i544 %r250 to i32
%r252 = and i32 %r249, %r251
%r253 = lshr i544 %r239, 96
%r254 = trunc i544 %r253 to i32
%r255 = and i32 %r252, %r254
%r256 = lshr i544 %r239, 128
%r257 = trunc i544 %r256 to i32
%r258 = and i32 %r255, %r257
%r259 = lshr i544 %r239, 160
%r260 = trunc i544 %r259 to i32
%r261 = and i32 %r258, %r260
%r262 = lshr i544 %r239, 192
%r263 = trunc i544 %r262 to i32
%r264 = and i32 %r261, %r263
%r265 = lshr i544 %r239, 224
%r266 = trunc i544 %r265 to i32
%r267 = and i32 %r264, %r266
%r268 = lshr i544 %r239, 256
%r269 = trunc i544 %r268 to i32
%r270 = and i32 %r267, %r269
%r271 = lshr i544 %r239, 288
%r272 = trunc i544 %r271 to i32
%r273 = and i32 %r270, %r272
%r274 = lshr i544 %r239, 320
%r275 = trunc i544 %r274 to i32
%r276 = and i32 %r273, %r275
%r277 = lshr i544 %r239, 352
%r278 = trunc i544 %r277 to i32
%r279 = and i32 %r276, %r278
%r280 = lshr i544 %r239, 384
%r281 = trunc i544 %r280 to i32
%r282 = and i32 %r279, %r281
%r283 = lshr i544 %r239, 416
%r284 = trunc i544 %r283 to i32
%r285 = and i32 %r282, %r284
%r286 = lshr i544 %r239, 448
%r287 = trunc i544 %r286 to i32
%r288 = and i32 %r285, %r287
%r289 = lshr i544 %r239, 480
%r290 = trunc i544 %r289 to i32
%r291 = and i32 %r288, %r290
%r293 = icmp eq i32 %r291, -1
br i1%r293, label %zero, label %nonzero
zero:
store i32 0, i32* %r1
%r297 = getelementptr i32, i32* %r1, i32 1
store i32 0, i32* %r297
%r300 = getelementptr i32, i32* %r1, i32 2
store i32 0, i32* %r300
%r303 = getelementptr i32, i32* %r1, i32 3
store i32 0, i32* %r303
%r306 = getelementptr i32, i32* %r1, i32 4
store i32 0, i32* %r306
%r309 = getelementptr i32, i32* %r1, i32 5
store i32 0, i32* %r309
%r312 = getelementptr i32, i32* %r1, i32 6
store i32 0, i32* %r312
%r315 = getelementptr i32, i32* %r1, i32 7
store i32 0, i32* %r315
%r318 = getelementptr i32, i32* %r1, i32 8
store i32 0, i32* %r318
%r321 = getelementptr i32, i32* %r1, i32 9
store i32 0, i32* %r321
%r324 = getelementptr i32, i32* %r1, i32 10
store i32 0, i32* %r324
%r327 = getelementptr i32, i32* %r1, i32 11
store i32 0, i32* %r327
%r330 = getelementptr i32, i32* %r1, i32 12
store i32 0, i32* %r330
%r333 = getelementptr i32, i32* %r1, i32 13
store i32 0, i32* %r333
%r336 = getelementptr i32, i32* %r1, i32 14
store i32 0, i32* %r336
%r339 = getelementptr i32, i32* %r1, i32 15
store i32 0, i32* %r339
%r342 = getelementptr i32, i32* %r1, i32 16
store i32 0, i32* %r342
ret void
nonzero:
%r344 = getelementptr i32, i32* %r1, i32 0
%r345 = trunc i544 %r239 to i32
store i32 %r345, i32* %r344
%r346 = lshr i544 %r239, 32
%r348 = getelementptr i32, i32* %r1, i32 1
%r349 = trunc i544 %r346 to i32
store i32 %r349, i32* %r348
%r350 = lshr i544 %r346, 32
%r352 = getelementptr i32, i32* %r1, i32 2
%r353 = trunc i544 %r350 to i32
store i32 %r353, i32* %r352
%r354 = lshr i544 %r350, 32
%r356 = getelementptr i32, i32* %r1, i32 3
%r357 = trunc i544 %r354 to i32
store i32 %r357, i32* %r356
%r358 = lshr i544 %r354, 32
%r360 = getelementptr i32, i32* %r1, i32 4
%r361 = trunc i544 %r358 to i32
store i32 %r361, i32* %r360
%r362 = lshr i544 %r358, 32
%r364 = getelementptr i32, i32* %r1, i32 5
%r365 = trunc i544 %r362 to i32
store i32 %r365, i32* %r364
%r366 = lshr i544 %r362, 32
%r368 = getelementptr i32, i32* %r1, i32 6
%r369 = trunc i544 %r366 to i32
store i32 %r369, i32* %r368
%r370 = lshr i544 %r366, 32
%r372 = getelementptr i32, i32* %r1, i32 7
%r373 = trunc i544 %r370 to i32
store i32 %r373, i32* %r372
%r374 = lshr i544 %r370, 32
%r376 = getelementptr i32, i32* %r1, i32 8
%r377 = trunc i544 %r374 to i32
store i32 %r377, i32* %r376
%r378 = lshr i544 %r374, 32
%r380 = getelementptr i32, i32* %r1, i32 9
%r381 = trunc i544 %r378 to i32
store i32 %r381, i32* %r380
%r382 = lshr i544 %r378, 32
%r384 = getelementptr i32, i32* %r1, i32 10
%r385 = trunc i544 %r382 to i32
store i32 %r385, i32* %r384
%r386 = lshr i544 %r382, 32
%r388 = getelementptr i32, i32* %r1, i32 11
%r389 = trunc i544 %r386 to i32
store i32 %r389, i32* %r388
%r390 = lshr i544 %r386, 32
%r392 = getelementptr i32, i32* %r1, i32 12
%r393 = trunc i544 %r390 to i32
store i32 %r393, i32* %r392
%r394 = lshr i544 %r390, 32
%r396 = getelementptr i32, i32* %r1, i32 13
%r397 = trunc i544 %r394 to i32
store i32 %r397, i32* %r396
%r398 = lshr i544 %r394, 32
%r400 = getelementptr i32, i32* %r1, i32 14
%r401 = trunc i544 %r398 to i32
store i32 %r401, i32* %r400
%r402 = lshr i544 %r398, 32
%r404 = getelementptr i32, i32* %r1, i32 15
%r405 = trunc i544 %r402 to i32
store i32 %r405, i32* %r404
%r406 = lshr i544 %r402, 32
%r408 = getelementptr i32, i32* %r1, i32 16
%r409 = trunc i544 %r406 to i32
store i32 %r409, i32* %r408
ret void
}
define i224 @mulPv192x32(i32* noalias  %r2, i32 %r3)
{
%r5 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 0)
%r6 = trunc i64 %r5 to i32
%r7 = call i32 @extractHigh32(i64 %r5)
%r9 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 1)
%r10 = trunc i64 %r9 to i32
%r11 = call i32 @extractHigh32(i64 %r9)
%r13 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 2)
%r14 = trunc i64 %r13 to i32
%r15 = call i32 @extractHigh32(i64 %r13)
%r17 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 3)
%r18 = trunc i64 %r17 to i32
%r19 = call i32 @extractHigh32(i64 %r17)
%r21 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 4)
%r22 = trunc i64 %r21 to i32
%r23 = call i32 @extractHigh32(i64 %r21)
%r25 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 5)
%r26 = trunc i64 %r25 to i32
%r27 = call i32 @extractHigh32(i64 %r25)
%r28 = zext i32 %r6 to i64
%r29 = zext i32 %r10 to i64
%r30 = shl i64 %r29, 32
%r31 = or i64 %r28, %r30
%r32 = zext i64 %r31 to i96
%r33 = zext i32 %r14 to i96
%r34 = shl i96 %r33, 64
%r35 = or i96 %r32, %r34
%r36 = zext i96 %r35 to i128
%r37 = zext i32 %r18 to i128
%r38 = shl i128 %r37, 96
%r39 = or i128 %r36, %r38
%r40 = zext i128 %r39 to i160
%r41 = zext i32 %r22 to i160
%r42 = shl i160 %r41, 128
%r43 = or i160 %r40, %r42
%r44 = zext i160 %r43 to i192
%r45 = zext i32 %r26 to i192
%r46 = shl i192 %r45, 160
%r47 = or i192 %r44, %r46
%r48 = zext i32 %r7 to i64
%r49 = zext i32 %r11 to i64
%r50 = shl i64 %r49, 32
%r51 = or i64 %r48, %r50
%r52 = zext i64 %r51 to i96
%r53 = zext i32 %r15 to i96
%r54 = shl i96 %r53, 64
%r55 = or i96 %r52, %r54
%r56 = zext i96 %r55 to i128
%r57 = zext i32 %r19 to i128
%r58 = shl i128 %r57, 96
%r59 = or i128 %r56, %r58
%r60 = zext i128 %r59 to i160
%r61 = zext i32 %r23 to i160
%r62 = shl i160 %r61, 128
%r63 = or i160 %r60, %r62
%r64 = zext i160 %r63 to i192
%r65 = zext i32 %r27 to i192
%r66 = shl i192 %r65, 160
%r67 = or i192 %r64, %r66
%r68 = zext i192 %r47 to i224
%r69 = zext i192 %r67 to i224
%r70 = shl i224 %r69, 32
%r71 = add i224 %r68, %r70
ret i224 %r71
}
define void @mcl_fpDbl_mulPre6L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3)
{
%r4 = load i32, i32* %r3
%r5 = call i224 @mulPv192x32(i32* %r2, i32 %r4)
%r6 = trunc i224 %r5 to i32
store i32 %r6, i32* %r1
%r7 = lshr i224 %r5, 32
%r9 = getelementptr i32, i32* %r3, i32 1
%r10 = load i32, i32* %r9
%r11 = call i224 @mulPv192x32(i32* %r2, i32 %r10)
%r12 = add i224 %r7, %r11
%r13 = trunc i224 %r12 to i32
%r15 = getelementptr i32, i32* %r1, i32 1
store i32 %r13, i32* %r15
%r16 = lshr i224 %r12, 32
%r18 = getelementptr i32, i32* %r3, i32 2
%r19 = load i32, i32* %r18
%r20 = call i224 @mulPv192x32(i32* %r2, i32 %r19)
%r21 = add i224 %r16, %r20
%r22 = trunc i224 %r21 to i32
%r24 = getelementptr i32, i32* %r1, i32 2
store i32 %r22, i32* %r24
%r25 = lshr i224 %r21, 32
%r27 = getelementptr i32, i32* %r3, i32 3
%r28 = load i32, i32* %r27
%r29 = call i224 @mulPv192x32(i32* %r2, i32 %r28)
%r30 = add i224 %r25, %r29
%r31 = trunc i224 %r30 to i32
%r33 = getelementptr i32, i32* %r1, i32 3
store i32 %r31, i32* %r33
%r34 = lshr i224 %r30, 32
%r36 = getelementptr i32, i32* %r3, i32 4
%r37 = load i32, i32* %r36
%r38 = call i224 @mulPv192x32(i32* %r2, i32 %r37)
%r39 = add i224 %r34, %r38
%r40 = trunc i224 %r39 to i32
%r42 = getelementptr i32, i32* %r1, i32 4
store i32 %r40, i32* %r42
%r43 = lshr i224 %r39, 32
%r45 = getelementptr i32, i32* %r3, i32 5
%r46 = load i32, i32* %r45
%r47 = call i224 @mulPv192x32(i32* %r2, i32 %r46)
%r48 = add i224 %r43, %r47
%r50 = getelementptr i32, i32* %r1, i32 5
%r52 = getelementptr i32, i32* %r50, i32 0
%r53 = trunc i224 %r48 to i32
store i32 %r53, i32* %r52
%r54 = lshr i224 %r48, 32
%r56 = getelementptr i32, i32* %r50, i32 1
%r57 = trunc i224 %r54 to i32
store i32 %r57, i32* %r56
%r58 = lshr i224 %r54, 32
%r60 = getelementptr i32, i32* %r50, i32 2
%r61 = trunc i224 %r58 to i32
store i32 %r61, i32* %r60
%r62 = lshr i224 %r58, 32
%r64 = getelementptr i32, i32* %r50, i32 3
%r65 = trunc i224 %r62 to i32
store i32 %r65, i32* %r64
%r66 = lshr i224 %r62, 32
%r68 = getelementptr i32, i32* %r50, i32 4
%r69 = trunc i224 %r66 to i32
store i32 %r69, i32* %r68
%r70 = lshr i224 %r66, 32
%r72 = getelementptr i32, i32* %r50, i32 5
%r73 = trunc i224 %r70 to i32
store i32 %r73, i32* %r72
%r74 = lshr i224 %r70, 32
%r76 = getelementptr i32, i32* %r50, i32 6
%r77 = trunc i224 %r74 to i32
store i32 %r77, i32* %r76
ret void
}
define void @mcl_fpDbl_sqrPre6L(i32* noalias  %r1, i32* noalias  %r2)
{
%r3 = load i32, i32* %r2
%r4 = call i224 @mulPv192x32(i32* %r2, i32 %r3)
%r5 = trunc i224 %r4 to i32
store i32 %r5, i32* %r1
%r6 = lshr i224 %r4, 32
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = call i224 @mulPv192x32(i32* %r2, i32 %r9)
%r11 = add i224 %r6, %r10
%r12 = trunc i224 %r11 to i32
%r14 = getelementptr i32, i32* %r1, i32 1
store i32 %r12, i32* %r14
%r15 = lshr i224 %r11, 32
%r17 = getelementptr i32, i32* %r2, i32 2
%r18 = load i32, i32* %r17
%r19 = call i224 @mulPv192x32(i32* %r2, i32 %r18)
%r20 = add i224 %r15, %r19
%r21 = trunc i224 %r20 to i32
%r23 = getelementptr i32, i32* %r1, i32 2
store i32 %r21, i32* %r23
%r24 = lshr i224 %r20, 32
%r26 = getelementptr i32, i32* %r2, i32 3
%r27 = load i32, i32* %r26
%r28 = call i224 @mulPv192x32(i32* %r2, i32 %r27)
%r29 = add i224 %r24, %r28
%r30 = trunc i224 %r29 to i32
%r32 = getelementptr i32, i32* %r1, i32 3
store i32 %r30, i32* %r32
%r33 = lshr i224 %r29, 32
%r35 = getelementptr i32, i32* %r2, i32 4
%r36 = load i32, i32* %r35
%r37 = call i224 @mulPv192x32(i32* %r2, i32 %r36)
%r38 = add i224 %r33, %r37
%r39 = trunc i224 %r38 to i32
%r41 = getelementptr i32, i32* %r1, i32 4
store i32 %r39, i32* %r41
%r42 = lshr i224 %r38, 32
%r44 = getelementptr i32, i32* %r2, i32 5
%r45 = load i32, i32* %r44
%r46 = call i224 @mulPv192x32(i32* %r2, i32 %r45)
%r47 = add i224 %r42, %r46
%r49 = getelementptr i32, i32* %r1, i32 5
%r51 = getelementptr i32, i32* %r49, i32 0
%r52 = trunc i224 %r47 to i32
store i32 %r52, i32* %r51
%r53 = lshr i224 %r47, 32
%r55 = getelementptr i32, i32* %r49, i32 1
%r56 = trunc i224 %r53 to i32
store i32 %r56, i32* %r55
%r57 = lshr i224 %r53, 32
%r59 = getelementptr i32, i32* %r49, i32 2
%r60 = trunc i224 %r57 to i32
store i32 %r60, i32* %r59
%r61 = lshr i224 %r57, 32
%r63 = getelementptr i32, i32* %r49, i32 3
%r64 = trunc i224 %r61 to i32
store i32 %r64, i32* %r63
%r65 = lshr i224 %r61, 32
%r67 = getelementptr i32, i32* %r49, i32 4
%r68 = trunc i224 %r65 to i32
store i32 %r68, i32* %r67
%r69 = lshr i224 %r65, 32
%r71 = getelementptr i32, i32* %r49, i32 5
%r72 = trunc i224 %r69 to i32
store i32 %r72, i32* %r71
%r73 = lshr i224 %r69, 32
%r75 = getelementptr i32, i32* %r49, i32 6
%r76 = trunc i224 %r73 to i32
store i32 %r76, i32* %r75
ret void
}
define void @mcl_fp_mont6L(i32* %r1, i32* %r2, i32* %r3, i32* %r4)
{
%r6 = getelementptr i32, i32* %r4, i32 -1
%r7 = load i32, i32* %r6
%r9 = getelementptr i32, i32* %r3, i32 0
%r10 = load i32, i32* %r9
%r11 = call i224 @mulPv192x32(i32* %r2, i32 %r10)
%r12 = zext i224 %r11 to i256
%r13 = trunc i224 %r11 to i32
%r14 = mul i32 %r13, %r7
%r15 = call i224 @mulPv192x32(i32* %r4, i32 %r14)
%r16 = zext i224 %r15 to i256
%r17 = add i256 %r12, %r16
%r18 = lshr i256 %r17, 32
%r20 = getelementptr i32, i32* %r3, i32 1
%r21 = load i32, i32* %r20
%r22 = call i224 @mulPv192x32(i32* %r2, i32 %r21)
%r23 = zext i224 %r22 to i256
%r24 = add i256 %r18, %r23
%r25 = trunc i256 %r24 to i32
%r26 = mul i32 %r25, %r7
%r27 = call i224 @mulPv192x32(i32* %r4, i32 %r26)
%r28 = zext i224 %r27 to i256
%r29 = add i256 %r24, %r28
%r30 = lshr i256 %r29, 32
%r32 = getelementptr i32, i32* %r3, i32 2
%r33 = load i32, i32* %r32
%r34 = call i224 @mulPv192x32(i32* %r2, i32 %r33)
%r35 = zext i224 %r34 to i256
%r36 = add i256 %r30, %r35
%r37 = trunc i256 %r36 to i32
%r38 = mul i32 %r37, %r7
%r39 = call i224 @mulPv192x32(i32* %r4, i32 %r38)
%r40 = zext i224 %r39 to i256
%r41 = add i256 %r36, %r40
%r42 = lshr i256 %r41, 32
%r44 = getelementptr i32, i32* %r3, i32 3
%r45 = load i32, i32* %r44
%r46 = call i224 @mulPv192x32(i32* %r2, i32 %r45)
%r47 = zext i224 %r46 to i256
%r48 = add i256 %r42, %r47
%r49 = trunc i256 %r48 to i32
%r50 = mul i32 %r49, %r7
%r51 = call i224 @mulPv192x32(i32* %r4, i32 %r50)
%r52 = zext i224 %r51 to i256
%r53 = add i256 %r48, %r52
%r54 = lshr i256 %r53, 32
%r56 = getelementptr i32, i32* %r3, i32 4
%r57 = load i32, i32* %r56
%r58 = call i224 @mulPv192x32(i32* %r2, i32 %r57)
%r59 = zext i224 %r58 to i256
%r60 = add i256 %r54, %r59
%r61 = trunc i256 %r60 to i32
%r62 = mul i32 %r61, %r7
%r63 = call i224 @mulPv192x32(i32* %r4, i32 %r62)
%r64 = zext i224 %r63 to i256
%r65 = add i256 %r60, %r64
%r66 = lshr i256 %r65, 32
%r68 = getelementptr i32, i32* %r3, i32 5
%r69 = load i32, i32* %r68
%r70 = call i224 @mulPv192x32(i32* %r2, i32 %r69)
%r71 = zext i224 %r70 to i256
%r72 = add i256 %r66, %r71
%r73 = trunc i256 %r72 to i32
%r74 = mul i32 %r73, %r7
%r75 = call i224 @mulPv192x32(i32* %r4, i32 %r74)
%r76 = zext i224 %r75 to i256
%r77 = add i256 %r72, %r76
%r78 = lshr i256 %r77, 32
%r79 = trunc i256 %r78 to i224
%r80 = load i32, i32* %r4
%r81 = zext i32 %r80 to i64
%r83 = getelementptr i32, i32* %r4, i32 1
%r84 = load i32, i32* %r83
%r85 = zext i32 %r84 to i64
%r86 = shl i64 %r85, 32
%r87 = or i64 %r81, %r86
%r88 = zext i64 %r87 to i96
%r90 = getelementptr i32, i32* %r4, i32 2
%r91 = load i32, i32* %r90
%r92 = zext i32 %r91 to i96
%r93 = shl i96 %r92, 64
%r94 = or i96 %r88, %r93
%r95 = zext i96 %r94 to i128
%r97 = getelementptr i32, i32* %r4, i32 3
%r98 = load i32, i32* %r97
%r99 = zext i32 %r98 to i128
%r100 = shl i128 %r99, 96
%r101 = or i128 %r95, %r100
%r102 = zext i128 %r101 to i160
%r104 = getelementptr i32, i32* %r4, i32 4
%r105 = load i32, i32* %r104
%r106 = zext i32 %r105 to i160
%r107 = shl i160 %r106, 128
%r108 = or i160 %r102, %r107
%r109 = zext i160 %r108 to i192
%r111 = getelementptr i32, i32* %r4, i32 5
%r112 = load i32, i32* %r111
%r113 = zext i32 %r112 to i192
%r114 = shl i192 %r113, 160
%r115 = or i192 %r109, %r114
%r116 = zext i192 %r115 to i224
%r117 = sub i224 %r79, %r116
%r118 = lshr i224 %r117, 192
%r119 = trunc i224 %r118 to i1
%r120 = select i1 %r119, i224 %r79, i224 %r117
%r121 = trunc i224 %r120 to i192
%r123 = getelementptr i32, i32* %r1, i32 0
%r124 = trunc i192 %r121 to i32
store i32 %r124, i32* %r123
%r125 = lshr i192 %r121, 32
%r127 = getelementptr i32, i32* %r1, i32 1
%r128 = trunc i192 %r125 to i32
store i32 %r128, i32* %r127
%r129 = lshr i192 %r125, 32
%r131 = getelementptr i32, i32* %r1, i32 2
%r132 = trunc i192 %r129 to i32
store i32 %r132, i32* %r131
%r133 = lshr i192 %r129, 32
%r135 = getelementptr i32, i32* %r1, i32 3
%r136 = trunc i192 %r133 to i32
store i32 %r136, i32* %r135
%r137 = lshr i192 %r133, 32
%r139 = getelementptr i32, i32* %r1, i32 4
%r140 = trunc i192 %r137 to i32
store i32 %r140, i32* %r139
%r141 = lshr i192 %r137, 32
%r143 = getelementptr i32, i32* %r1, i32 5
%r144 = trunc i192 %r141 to i32
store i32 %r144, i32* %r143
ret void
}
define void @mcl_fp_montNF6L(i32* %r1, i32* %r2, i32* %r3, i32* %r4)
{
%r6 = getelementptr i32, i32* %r4, i32 -1
%r7 = load i32, i32* %r6
%r8 = load i32, i32* %r3
%r9 = call i224 @mulPv192x32(i32* %r2, i32 %r8)
%r10 = trunc i224 %r9 to i32
%r11 = mul i32 %r10, %r7
%r12 = call i224 @mulPv192x32(i32* %r4, i32 %r11)
%r13 = add i224 %r9, %r12
%r14 = lshr i224 %r13, 32
%r16 = getelementptr i32, i32* %r3, i32 1
%r17 = load i32, i32* %r16
%r18 = call i224 @mulPv192x32(i32* %r2, i32 %r17)
%r19 = add i224 %r14, %r18
%r20 = trunc i224 %r19 to i32
%r21 = mul i32 %r20, %r7
%r22 = call i224 @mulPv192x32(i32* %r4, i32 %r21)
%r23 = add i224 %r19, %r22
%r24 = lshr i224 %r23, 32
%r26 = getelementptr i32, i32* %r3, i32 2
%r27 = load i32, i32* %r26
%r28 = call i224 @mulPv192x32(i32* %r2, i32 %r27)
%r29 = add i224 %r24, %r28
%r30 = trunc i224 %r29 to i32
%r31 = mul i32 %r30, %r7
%r32 = call i224 @mulPv192x32(i32* %r4, i32 %r31)
%r33 = add i224 %r29, %r32
%r34 = lshr i224 %r33, 32
%r36 = getelementptr i32, i32* %r3, i32 3
%r37 = load i32, i32* %r36
%r38 = call i224 @mulPv192x32(i32* %r2, i32 %r37)
%r39 = add i224 %r34, %r38
%r40 = trunc i224 %r39 to i32
%r41 = mul i32 %r40, %r7
%r42 = call i224 @mulPv192x32(i32* %r4, i32 %r41)
%r43 = add i224 %r39, %r42
%r44 = lshr i224 %r43, 32
%r46 = getelementptr i32, i32* %r3, i32 4
%r47 = load i32, i32* %r46
%r48 = call i224 @mulPv192x32(i32* %r2, i32 %r47)
%r49 = add i224 %r44, %r48
%r50 = trunc i224 %r49 to i32
%r51 = mul i32 %r50, %r7
%r52 = call i224 @mulPv192x32(i32* %r4, i32 %r51)
%r53 = add i224 %r49, %r52
%r54 = lshr i224 %r53, 32
%r56 = getelementptr i32, i32* %r3, i32 5
%r57 = load i32, i32* %r56
%r58 = call i224 @mulPv192x32(i32* %r2, i32 %r57)
%r59 = add i224 %r54, %r58
%r60 = trunc i224 %r59 to i32
%r61 = mul i32 %r60, %r7
%r62 = call i224 @mulPv192x32(i32* %r4, i32 %r61)
%r63 = add i224 %r59, %r62
%r64 = lshr i224 %r63, 32
%r65 = trunc i224 %r64 to i192
%r66 = load i32, i32* %r4
%r67 = zext i32 %r66 to i64
%r69 = getelementptr i32, i32* %r4, i32 1
%r70 = load i32, i32* %r69
%r71 = zext i32 %r70 to i64
%r72 = shl i64 %r71, 32
%r73 = or i64 %r67, %r72
%r74 = zext i64 %r73 to i96
%r76 = getelementptr i32, i32* %r4, i32 2
%r77 = load i32, i32* %r76
%r78 = zext i32 %r77 to i96
%r79 = shl i96 %r78, 64
%r80 = or i96 %r74, %r79
%r81 = zext i96 %r80 to i128
%r83 = getelementptr i32, i32* %r4, i32 3
%r84 = load i32, i32* %r83
%r85 = zext i32 %r84 to i128
%r86 = shl i128 %r85, 96
%r87 = or i128 %r81, %r86
%r88 = zext i128 %r87 to i160
%r90 = getelementptr i32, i32* %r4, i32 4
%r91 = load i32, i32* %r90
%r92 = zext i32 %r91 to i160
%r93 = shl i160 %r92, 128
%r94 = or i160 %r88, %r93
%r95 = zext i160 %r94 to i192
%r97 = getelementptr i32, i32* %r4, i32 5
%r98 = load i32, i32* %r97
%r99 = zext i32 %r98 to i192
%r100 = shl i192 %r99, 160
%r101 = or i192 %r95, %r100
%r102 = sub i192 %r65, %r101
%r103 = lshr i192 %r102, 191
%r104 = trunc i192 %r103 to i1
%r105 = select i1 %r104, i192 %r65, i192 %r102
%r107 = getelementptr i32, i32* %r1, i32 0
%r108 = trunc i192 %r105 to i32
store i32 %r108, i32* %r107
%r109 = lshr i192 %r105, 32
%r111 = getelementptr i32, i32* %r1, i32 1
%r112 = trunc i192 %r109 to i32
store i32 %r112, i32* %r111
%r113 = lshr i192 %r109, 32
%r115 = getelementptr i32, i32* %r1, i32 2
%r116 = trunc i192 %r113 to i32
store i32 %r116, i32* %r115
%r117 = lshr i192 %r113, 32
%r119 = getelementptr i32, i32* %r1, i32 3
%r120 = trunc i192 %r117 to i32
store i32 %r120, i32* %r119
%r121 = lshr i192 %r117, 32
%r123 = getelementptr i32, i32* %r1, i32 4
%r124 = trunc i192 %r121 to i32
store i32 %r124, i32* %r123
%r125 = lshr i192 %r121, 32
%r127 = getelementptr i32, i32* %r1, i32 5
%r128 = trunc i192 %r125 to i32
store i32 %r128, i32* %r127
ret void
}
define void @mcl_fp_montRed6L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3)
{
%r5 = getelementptr i32, i32* %r3, i32 -1
%r6 = load i32, i32* %r5
%r7 = load i32, i32* %r3
%r8 = zext i32 %r7 to i64
%r10 = getelementptr i32, i32* %r3, i32 1
%r11 = load i32, i32* %r10
%r12 = zext i32 %r11 to i64
%r13 = shl i64 %r12, 32
%r14 = or i64 %r8, %r13
%r15 = zext i64 %r14 to i96
%r17 = getelementptr i32, i32* %r3, i32 2
%r18 = load i32, i32* %r17
%r19 = zext i32 %r18 to i96
%r20 = shl i96 %r19, 64
%r21 = or i96 %r15, %r20
%r22 = zext i96 %r21 to i128
%r24 = getelementptr i32, i32* %r3, i32 3
%r25 = load i32, i32* %r24
%r26 = zext i32 %r25 to i128
%r27 = shl i128 %r26, 96
%r28 = or i128 %r22, %r27
%r29 = zext i128 %r28 to i160
%r31 = getelementptr i32, i32* %r3, i32 4
%r32 = load i32, i32* %r31
%r33 = zext i32 %r32 to i160
%r34 = shl i160 %r33, 128
%r35 = or i160 %r29, %r34
%r36 = zext i160 %r35 to i192
%r38 = getelementptr i32, i32* %r3, i32 5
%r39 = load i32, i32* %r38
%r40 = zext i32 %r39 to i192
%r41 = shl i192 %r40, 160
%r42 = or i192 %r36, %r41
%r43 = load i32, i32* %r2
%r44 = zext i32 %r43 to i64
%r46 = getelementptr i32, i32* %r2, i32 1
%r47 = load i32, i32* %r46
%r48 = zext i32 %r47 to i64
%r49 = shl i64 %r48, 32
%r50 = or i64 %r44, %r49
%r51 = zext i64 %r50 to i96
%r53 = getelementptr i32, i32* %r2, i32 2
%r54 = load i32, i32* %r53
%r55 = zext i32 %r54 to i96
%r56 = shl i96 %r55, 64
%r57 = or i96 %r51, %r56
%r58 = zext i96 %r57 to i128
%r60 = getelementptr i32, i32* %r2, i32 3
%r61 = load i32, i32* %r60
%r62 = zext i32 %r61 to i128
%r63 = shl i128 %r62, 96
%r64 = or i128 %r58, %r63
%r65 = zext i128 %r64 to i160
%r67 = getelementptr i32, i32* %r2, i32 4
%r68 = load i32, i32* %r67
%r69 = zext i32 %r68 to i160
%r70 = shl i160 %r69, 128
%r71 = or i160 %r65, %r70
%r72 = zext i160 %r71 to i192
%r74 = getelementptr i32, i32* %r2, i32 5
%r75 = load i32, i32* %r74
%r76 = zext i32 %r75 to i192
%r77 = shl i192 %r76, 160
%r78 = or i192 %r72, %r77
%r79 = trunc i192 %r78 to i32
%r80 = mul i32 %r79, %r6
%r81 = call i224 @mulPv192x32(i32* %r3, i32 %r80)
%r83 = getelementptr i32, i32* %r2, i32 6
%r84 = load i32, i32* %r83
%r85 = zext i32 %r84 to i224
%r86 = shl i224 %r85, 192
%r87 = zext i192 %r78 to i224
%r88 = or i224 %r86, %r87
%r89 = zext i224 %r88 to i256
%r90 = zext i224 %r81 to i256
%r91 = add i256 %r89, %r90
%r92 = lshr i256 %r91, 32
%r93 = trunc i256 %r92 to i224
%r94 = lshr i224 %r93, 192
%r95 = trunc i224 %r94 to i32
%r96 = trunc i224 %r93 to i192
%r97 = trunc i192 %r96 to i32
%r98 = mul i32 %r97, %r6
%r99 = call i224 @mulPv192x32(i32* %r3, i32 %r98)
%r100 = zext i32 %r95 to i224
%r101 = shl i224 %r100, 192
%r102 = add i224 %r99, %r101
%r104 = getelementptr i32, i32* %r2, i32 7
%r105 = load i32, i32* %r104
%r106 = zext i32 %r105 to i224
%r107 = shl i224 %r106, 192
%r108 = zext i192 %r96 to i224
%r109 = or i224 %r107, %r108
%r110 = zext i224 %r109 to i256
%r111 = zext i224 %r102 to i256
%r112 = add i256 %r110, %r111
%r113 = lshr i256 %r112, 32
%r114 = trunc i256 %r113 to i224
%r115 = lshr i224 %r114, 192
%r116 = trunc i224 %r115 to i32
%r117 = trunc i224 %r114 to i192
%r118 = trunc i192 %r117 to i32
%r119 = mul i32 %r118, %r6
%r120 = call i224 @mulPv192x32(i32* %r3, i32 %r119)
%r121 = zext i32 %r116 to i224
%r122 = shl i224 %r121, 192
%r123 = add i224 %r120, %r122
%r125 = getelementptr i32, i32* %r2, i32 8
%r126 = load i32, i32* %r125
%r127 = zext i32 %r126 to i224
%r128 = shl i224 %r127, 192
%r129 = zext i192 %r117 to i224
%r130 = or i224 %r128, %r129
%r131 = zext i224 %r130 to i256
%r132 = zext i224 %r123 to i256
%r133 = add i256 %r131, %r132
%r134 = lshr i256 %r133, 32
%r135 = trunc i256 %r134 to i224
%r136 = lshr i224 %r135, 192
%r137 = trunc i224 %r136 to i32
%r138 = trunc i224 %r135 to i192
%r139 = trunc i192 %r138 to i32
%r140 = mul i32 %r139, %r6
%r141 = call i224 @mulPv192x32(i32* %r3, i32 %r140)
%r142 = zext i32 %r137 to i224
%r143 = shl i224 %r142, 192
%r144 = add i224 %r141, %r143
%r146 = getelementptr i32, i32* %r2, i32 9
%r147 = load i32, i32* %r146
%r148 = zext i32 %r147 to i224
%r149 = shl i224 %r148, 192
%r150 = zext i192 %r138 to i224
%r151 = or i224 %r149, %r150
%r152 = zext i224 %r151 to i256
%r153 = zext i224 %r144 to i256
%r154 = add i256 %r152, %r153
%r155 = lshr i256 %r154, 32
%r156 = trunc i256 %r155 to i224
%r157 = lshr i224 %r156, 192
%r158 = trunc i224 %r157 to i32
%r159 = trunc i224 %r156 to i192
%r160 = trunc i192 %r159 to i32
%r161 = mul i32 %r160, %r6
%r162 = call i224 @mulPv192x32(i32* %r3, i32 %r161)
%r163 = zext i32 %r158 to i224
%r164 = shl i224 %r163, 192
%r165 = add i224 %r162, %r164
%r167 = getelementptr i32, i32* %r2, i32 10
%r168 = load i32, i32* %r167
%r169 = zext i32 %r168 to i224
%r170 = shl i224 %r169, 192
%r171 = zext i192 %r159 to i224
%r172 = or i224 %r170, %r171
%r173 = zext i224 %r172 to i256
%r174 = zext i224 %r165 to i256
%r175 = add i256 %r173, %r174
%r176 = lshr i256 %r175, 32
%r177 = trunc i256 %r176 to i224
%r178 = lshr i224 %r177, 192
%r179 = trunc i224 %r178 to i32
%r180 = trunc i224 %r177 to i192
%r181 = trunc i192 %r180 to i32
%r182 = mul i32 %r181, %r6
%r183 = call i224 @mulPv192x32(i32* %r3, i32 %r182)
%r184 = zext i32 %r179 to i224
%r185 = shl i224 %r184, 192
%r186 = add i224 %r183, %r185
%r188 = getelementptr i32, i32* %r2, i32 11
%r189 = load i32, i32* %r188
%r190 = zext i32 %r189 to i224
%r191 = shl i224 %r190, 192
%r192 = zext i192 %r180 to i224
%r193 = or i224 %r191, %r192
%r194 = zext i224 %r193 to i256
%r195 = zext i224 %r186 to i256
%r196 = add i256 %r194, %r195
%r197 = lshr i256 %r196, 32
%r198 = trunc i256 %r197 to i224
%r199 = lshr i224 %r198, 192
%r200 = trunc i224 %r199 to i32
%r201 = trunc i224 %r198 to i192
%r202 = zext i192 %r42 to i224
%r203 = zext i32 %r200 to i224
%r204 = shl i224 %r203, 192
%r205 = zext i192 %r201 to i224
%r206 = or i224 %r204, %r205
%r207 = sub i224 %r206, %r202
%r208 = lshr i224 %r207, 192
%r209 = trunc i224 %r208 to i1
%r210 = select i1 %r209, i224 %r206, i224 %r207
%r211 = trunc i224 %r210 to i192
%r213 = getelementptr i32, i32* %r1, i32 0
%r214 = trunc i192 %r211 to i32
store i32 %r214, i32* %r213
%r215 = lshr i192 %r211, 32
%r217 = getelementptr i32, i32* %r1, i32 1
%r218 = trunc i192 %r215 to i32
store i32 %r218, i32* %r217
%r219 = lshr i192 %r215, 32
%r221 = getelementptr i32, i32* %r1, i32 2
%r222 = trunc i192 %r219 to i32
store i32 %r222, i32* %r221
%r223 = lshr i192 %r219, 32
%r225 = getelementptr i32, i32* %r1, i32 3
%r226 = trunc i192 %r223 to i32
store i32 %r226, i32* %r225
%r227 = lshr i192 %r223, 32
%r229 = getelementptr i32, i32* %r1, i32 4
%r230 = trunc i192 %r227 to i32
store i32 %r230, i32* %r229
%r231 = lshr i192 %r227, 32
%r233 = getelementptr i32, i32* %r1, i32 5
%r234 = trunc i192 %r231 to i32
store i32 %r234, i32* %r233
ret void
}
define void @mcl_fp_montRedNF6L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3)
{
%r5 = getelementptr i32, i32* %r3, i32 -1
%r6 = load i32, i32* %r5
%r7 = load i32, i32* %r3
%r8 = zext i32 %r7 to i64
%r10 = getelementptr i32, i32* %r3, i32 1
%r11 = load i32, i32* %r10
%r12 = zext i32 %r11 to i64
%r13 = shl i64 %r12, 32
%r14 = or i64 %r8, %r13
%r15 = zext i64 %r14 to i96
%r17 = getelementptr i32, i32* %r3, i32 2
%r18 = load i32, i32* %r17
%r19 = zext i32 %r18 to i96
%r20 = shl i96 %r19, 64
%r21 = or i96 %r15, %r20
%r22 = zext i96 %r21 to i128
%r24 = getelementptr i32, i32* %r3, i32 3
%r25 = load i32, i32* %r24
%r26 = zext i32 %r25 to i128
%r27 = shl i128 %r26, 96
%r28 = or i128 %r22, %r27
%r29 = zext i128 %r28 to i160
%r31 = getelementptr i32, i32* %r3, i32 4
%r32 = load i32, i32* %r31
%r33 = zext i32 %r32 to i160
%r34 = shl i160 %r33, 128
%r35 = or i160 %r29, %r34
%r36 = zext i160 %r35 to i192
%r38 = getelementptr i32, i32* %r3, i32 5
%r39 = load i32, i32* %r38
%r40 = zext i32 %r39 to i192
%r41 = shl i192 %r40, 160
%r42 = or i192 %r36, %r41
%r43 = load i32, i32* %r2
%r44 = zext i32 %r43 to i64
%r46 = getelementptr i32, i32* %r2, i32 1
%r47 = load i32, i32* %r46
%r48 = zext i32 %r47 to i64
%r49 = shl i64 %r48, 32
%r50 = or i64 %r44, %r49
%r51 = zext i64 %r50 to i96
%r53 = getelementptr i32, i32* %r2, i32 2
%r54 = load i32, i32* %r53
%r55 = zext i32 %r54 to i96
%r56 = shl i96 %r55, 64
%r57 = or i96 %r51, %r56
%r58 = zext i96 %r57 to i128
%r60 = getelementptr i32, i32* %r2, i32 3
%r61 = load i32, i32* %r60
%r62 = zext i32 %r61 to i128
%r63 = shl i128 %r62, 96
%r64 = or i128 %r58, %r63
%r65 = zext i128 %r64 to i160
%r67 = getelementptr i32, i32* %r2, i32 4
%r68 = load i32, i32* %r67
%r69 = zext i32 %r68 to i160
%r70 = shl i160 %r69, 128
%r71 = or i160 %r65, %r70
%r72 = zext i160 %r71 to i192
%r74 = getelementptr i32, i32* %r2, i32 5
%r75 = load i32, i32* %r74
%r76 = zext i32 %r75 to i192
%r77 = shl i192 %r76, 160
%r78 = or i192 %r72, %r77
%r79 = trunc i192 %r78 to i32
%r80 = mul i32 %r79, %r6
%r81 = call i224 @mulPv192x32(i32* %r3, i32 %r80)
%r83 = getelementptr i32, i32* %r2, i32 6
%r84 = load i32, i32* %r83
%r85 = zext i32 %r84 to i224
%r86 = shl i224 %r85, 192
%r87 = zext i192 %r78 to i224
%r88 = or i224 %r86, %r87
%r89 = zext i224 %r88 to i256
%r90 = zext i224 %r81 to i256
%r91 = add i256 %r89, %r90
%r92 = lshr i256 %r91, 32
%r93 = trunc i256 %r92 to i224
%r94 = lshr i224 %r93, 192
%r95 = trunc i224 %r94 to i32
%r96 = trunc i224 %r93 to i192
%r97 = trunc i192 %r96 to i32
%r98 = mul i32 %r97, %r6
%r99 = call i224 @mulPv192x32(i32* %r3, i32 %r98)
%r100 = zext i32 %r95 to i224
%r101 = shl i224 %r100, 192
%r102 = add i224 %r99, %r101
%r104 = getelementptr i32, i32* %r2, i32 7
%r105 = load i32, i32* %r104
%r106 = zext i32 %r105 to i224
%r107 = shl i224 %r106, 192
%r108 = zext i192 %r96 to i224
%r109 = or i224 %r107, %r108
%r110 = zext i224 %r109 to i256
%r111 = zext i224 %r102 to i256
%r112 = add i256 %r110, %r111
%r113 = lshr i256 %r112, 32
%r114 = trunc i256 %r113 to i224
%r115 = lshr i224 %r114, 192
%r116 = trunc i224 %r115 to i32
%r117 = trunc i224 %r114 to i192
%r118 = trunc i192 %r117 to i32
%r119 = mul i32 %r118, %r6
%r120 = call i224 @mulPv192x32(i32* %r3, i32 %r119)
%r121 = zext i32 %r116 to i224
%r122 = shl i224 %r121, 192
%r123 = add i224 %r120, %r122
%r125 = getelementptr i32, i32* %r2, i32 8
%r126 = load i32, i32* %r125
%r127 = zext i32 %r126 to i224
%r128 = shl i224 %r127, 192
%r129 = zext i192 %r117 to i224
%r130 = or i224 %r128, %r129
%r131 = zext i224 %r130 to i256
%r132 = zext i224 %r123 to i256
%r133 = add i256 %r131, %r132
%r134 = lshr i256 %r133, 32
%r135 = trunc i256 %r134 to i224
%r136 = lshr i224 %r135, 192
%r137 = trunc i224 %r136 to i32
%r138 = trunc i224 %r135 to i192
%r139 = trunc i192 %r138 to i32
%r140 = mul i32 %r139, %r6
%r141 = call i224 @mulPv192x32(i32* %r3, i32 %r140)
%r142 = zext i32 %r137 to i224
%r143 = shl i224 %r142, 192
%r144 = add i224 %r141, %r143
%r146 = getelementptr i32, i32* %r2, i32 9
%r147 = load i32, i32* %r146
%r148 = zext i32 %r147 to i224
%r149 = shl i224 %r148, 192
%r150 = zext i192 %r138 to i224
%r151 = or i224 %r149, %r150
%r152 = zext i224 %r151 to i256
%r153 = zext i224 %r144 to i256
%r154 = add i256 %r152, %r153
%r155 = lshr i256 %r154, 32
%r156 = trunc i256 %r155 to i224
%r157 = lshr i224 %r156, 192
%r158 = trunc i224 %r157 to i32
%r159 = trunc i224 %r156 to i192
%r160 = trunc i192 %r159 to i32
%r161 = mul i32 %r160, %r6
%r162 = call i224 @mulPv192x32(i32* %r3, i32 %r161)
%r163 = zext i32 %r158 to i224
%r164 = shl i224 %r163, 192
%r165 = add i224 %r162, %r164
%r167 = getelementptr i32, i32* %r2, i32 10
%r168 = load i32, i32* %r167
%r169 = zext i32 %r168 to i224
%r170 = shl i224 %r169, 192
%r171 = zext i192 %r159 to i224
%r172 = or i224 %r170, %r171
%r173 = zext i224 %r172 to i256
%r174 = zext i224 %r165 to i256
%r175 = add i256 %r173, %r174
%r176 = lshr i256 %r175, 32
%r177 = trunc i256 %r176 to i224
%r178 = lshr i224 %r177, 192
%r179 = trunc i224 %r178 to i32
%r180 = trunc i224 %r177 to i192
%r181 = trunc i192 %r180 to i32
%r182 = mul i32 %r181, %r6
%r183 = call i224 @mulPv192x32(i32* %r3, i32 %r182)
%r184 = zext i32 %r179 to i224
%r185 = shl i224 %r184, 192
%r186 = add i224 %r183, %r185
%r188 = getelementptr i32, i32* %r2, i32 11
%r189 = load i32, i32* %r188
%r190 = zext i32 %r189 to i224
%r191 = shl i224 %r190, 192
%r192 = zext i192 %r180 to i224
%r193 = or i224 %r191, %r192
%r194 = zext i224 %r193 to i256
%r195 = zext i224 %r186 to i256
%r196 = add i256 %r194, %r195
%r197 = lshr i256 %r196, 32
%r198 = trunc i256 %r197 to i224
%r199 = lshr i224 %r198, 192
%r200 = trunc i224 %r199 to i32
%r201 = trunc i224 %r198 to i192
%r202 = sub i192 %r201, %r42
%r203 = lshr i192 %r202, 191
%r204 = trunc i192 %r203 to i1
%r205 = select i1 %r204, i192 %r201, i192 %r202
%r207 = getelementptr i32, i32* %r1, i32 0
%r208 = trunc i192 %r205 to i32
store i32 %r208, i32* %r207
%r209 = lshr i192 %r205, 32
%r211 = getelementptr i32, i32* %r1, i32 1
%r212 = trunc i192 %r209 to i32
store i32 %r212, i32* %r211
%r213 = lshr i192 %r209, 32
%r215 = getelementptr i32, i32* %r1, i32 2
%r216 = trunc i192 %r213 to i32
store i32 %r216, i32* %r215
%r217 = lshr i192 %r213, 32
%r219 = getelementptr i32, i32* %r1, i32 3
%r220 = trunc i192 %r217 to i32
store i32 %r220, i32* %r219
%r221 = lshr i192 %r217, 32
%r223 = getelementptr i32, i32* %r1, i32 4
%r224 = trunc i192 %r221 to i32
store i32 %r224, i32* %r223
%r225 = lshr i192 %r221, 32
%r227 = getelementptr i32, i32* %r1, i32 5
%r228 = trunc i192 %r225 to i32
store i32 %r228, i32* %r227
ret void
}
define i32 @mcl_fp_addPre6L(i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r3
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r3, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r3, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r3, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r3, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r3, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r42 = load i32, i32* %r4
%r43 = zext i32 %r42 to i64
%r45 = getelementptr i32, i32* %r4, i32 1
%r46 = load i32, i32* %r45
%r47 = zext i32 %r46 to i64
%r48 = shl i64 %r47, 32
%r49 = or i64 %r43, %r48
%r50 = zext i64 %r49 to i96
%r52 = getelementptr i32, i32* %r4, i32 2
%r53 = load i32, i32* %r52
%r54 = zext i32 %r53 to i96
%r55 = shl i96 %r54, 64
%r56 = or i96 %r50, %r55
%r57 = zext i96 %r56 to i128
%r59 = getelementptr i32, i32* %r4, i32 3
%r60 = load i32, i32* %r59
%r61 = zext i32 %r60 to i128
%r62 = shl i128 %r61, 96
%r63 = or i128 %r57, %r62
%r64 = zext i128 %r63 to i160
%r66 = getelementptr i32, i32* %r4, i32 4
%r67 = load i32, i32* %r66
%r68 = zext i32 %r67 to i160
%r69 = shl i160 %r68, 128
%r70 = or i160 %r64, %r69
%r71 = zext i160 %r70 to i192
%r73 = getelementptr i32, i32* %r4, i32 5
%r74 = load i32, i32* %r73
%r75 = zext i32 %r74 to i192
%r76 = shl i192 %r75, 160
%r77 = or i192 %r71, %r76
%r78 = zext i192 %r77 to i224
%r79 = add i224 %r41, %r78
%r80 = trunc i224 %r79 to i192
%r82 = getelementptr i32, i32* %r2, i32 0
%r83 = trunc i192 %r80 to i32
store i32 %r83, i32* %r82
%r84 = lshr i192 %r80, 32
%r86 = getelementptr i32, i32* %r2, i32 1
%r87 = trunc i192 %r84 to i32
store i32 %r87, i32* %r86
%r88 = lshr i192 %r84, 32
%r90 = getelementptr i32, i32* %r2, i32 2
%r91 = trunc i192 %r88 to i32
store i32 %r91, i32* %r90
%r92 = lshr i192 %r88, 32
%r94 = getelementptr i32, i32* %r2, i32 3
%r95 = trunc i192 %r92 to i32
store i32 %r95, i32* %r94
%r96 = lshr i192 %r92, 32
%r98 = getelementptr i32, i32* %r2, i32 4
%r99 = trunc i192 %r96 to i32
store i32 %r99, i32* %r98
%r100 = lshr i192 %r96, 32
%r102 = getelementptr i32, i32* %r2, i32 5
%r103 = trunc i192 %r100 to i32
store i32 %r103, i32* %r102
%r104 = lshr i224 %r79, 192
%r105 = trunc i224 %r104 to i32
ret i32 %r105
}
define i32 @mcl_fp_subPre6L(i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r3
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r3, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r3, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r3, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r3, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r3, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r42 = load i32, i32* %r4
%r43 = zext i32 %r42 to i64
%r45 = getelementptr i32, i32* %r4, i32 1
%r46 = load i32, i32* %r45
%r47 = zext i32 %r46 to i64
%r48 = shl i64 %r47, 32
%r49 = or i64 %r43, %r48
%r50 = zext i64 %r49 to i96
%r52 = getelementptr i32, i32* %r4, i32 2
%r53 = load i32, i32* %r52
%r54 = zext i32 %r53 to i96
%r55 = shl i96 %r54, 64
%r56 = or i96 %r50, %r55
%r57 = zext i96 %r56 to i128
%r59 = getelementptr i32, i32* %r4, i32 3
%r60 = load i32, i32* %r59
%r61 = zext i32 %r60 to i128
%r62 = shl i128 %r61, 96
%r63 = or i128 %r57, %r62
%r64 = zext i128 %r63 to i160
%r66 = getelementptr i32, i32* %r4, i32 4
%r67 = load i32, i32* %r66
%r68 = zext i32 %r67 to i160
%r69 = shl i160 %r68, 128
%r70 = or i160 %r64, %r69
%r71 = zext i160 %r70 to i192
%r73 = getelementptr i32, i32* %r4, i32 5
%r74 = load i32, i32* %r73
%r75 = zext i32 %r74 to i192
%r76 = shl i192 %r75, 160
%r77 = or i192 %r71, %r76
%r78 = zext i192 %r77 to i224
%r79 = sub i224 %r41, %r78
%r80 = trunc i224 %r79 to i192
%r82 = getelementptr i32, i32* %r2, i32 0
%r83 = trunc i192 %r80 to i32
store i32 %r83, i32* %r82
%r84 = lshr i192 %r80, 32
%r86 = getelementptr i32, i32* %r2, i32 1
%r87 = trunc i192 %r84 to i32
store i32 %r87, i32* %r86
%r88 = lshr i192 %r84, 32
%r90 = getelementptr i32, i32* %r2, i32 2
%r91 = trunc i192 %r88 to i32
store i32 %r91, i32* %r90
%r92 = lshr i192 %r88, 32
%r94 = getelementptr i32, i32* %r2, i32 3
%r95 = trunc i192 %r92 to i32
store i32 %r95, i32* %r94
%r96 = lshr i192 %r92, 32
%r98 = getelementptr i32, i32* %r2, i32 4
%r99 = trunc i192 %r96 to i32
store i32 %r99, i32* %r98
%r100 = lshr i192 %r96, 32
%r102 = getelementptr i32, i32* %r2, i32 5
%r103 = trunc i192 %r100 to i32
store i32 %r103, i32* %r102
%r105 = lshr i224 %r79, 192
%r106 = trunc i224 %r105 to i32
%r107 = and i32 %r106, 1
ret i32 %r107
}
define void @mcl_fp_shr1_6L(i32* noalias  %r1, i32* noalias  %r2)
{
%r3 = load i32, i32* %r2
%r4 = zext i32 %r3 to i64
%r6 = getelementptr i32, i32* %r2, i32 1
%r7 = load i32, i32* %r6
%r8 = zext i32 %r7 to i64
%r9 = shl i64 %r8, 32
%r10 = or i64 %r4, %r9
%r11 = zext i64 %r10 to i96
%r13 = getelementptr i32, i32* %r2, i32 2
%r14 = load i32, i32* %r13
%r15 = zext i32 %r14 to i96
%r16 = shl i96 %r15, 64
%r17 = or i96 %r11, %r16
%r18 = zext i96 %r17 to i128
%r20 = getelementptr i32, i32* %r2, i32 3
%r21 = load i32, i32* %r20
%r22 = zext i32 %r21 to i128
%r23 = shl i128 %r22, 96
%r24 = or i128 %r18, %r23
%r25 = zext i128 %r24 to i160
%r27 = getelementptr i32, i32* %r2, i32 4
%r28 = load i32, i32* %r27
%r29 = zext i32 %r28 to i160
%r30 = shl i160 %r29, 128
%r31 = or i160 %r25, %r30
%r32 = zext i160 %r31 to i192
%r34 = getelementptr i32, i32* %r2, i32 5
%r35 = load i32, i32* %r34
%r36 = zext i32 %r35 to i192
%r37 = shl i192 %r36, 160
%r38 = or i192 %r32, %r37
%r39 = lshr i192 %r38, 1
%r41 = getelementptr i32, i32* %r1, i32 0
%r42 = trunc i192 %r39 to i32
store i32 %r42, i32* %r41
%r43 = lshr i192 %r39, 32
%r45 = getelementptr i32, i32* %r1, i32 1
%r46 = trunc i192 %r43 to i32
store i32 %r46, i32* %r45
%r47 = lshr i192 %r43, 32
%r49 = getelementptr i32, i32* %r1, i32 2
%r50 = trunc i192 %r47 to i32
store i32 %r50, i32* %r49
%r51 = lshr i192 %r47, 32
%r53 = getelementptr i32, i32* %r1, i32 3
%r54 = trunc i192 %r51 to i32
store i32 %r54, i32* %r53
%r55 = lshr i192 %r51, 32
%r57 = getelementptr i32, i32* %r1, i32 4
%r58 = trunc i192 %r55 to i32
store i32 %r58, i32* %r57
%r59 = lshr i192 %r55, 32
%r61 = getelementptr i32, i32* %r1, i32 5
%r62 = trunc i192 %r59 to i32
store i32 %r62, i32* %r61
ret void
}
define void @mcl_fp_add6L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = load i32, i32* %r3
%r42 = zext i32 %r41 to i64
%r44 = getelementptr i32, i32* %r3, i32 1
%r45 = load i32, i32* %r44
%r46 = zext i32 %r45 to i64
%r47 = shl i64 %r46, 32
%r48 = or i64 %r42, %r47
%r49 = zext i64 %r48 to i96
%r51 = getelementptr i32, i32* %r3, i32 2
%r52 = load i32, i32* %r51
%r53 = zext i32 %r52 to i96
%r54 = shl i96 %r53, 64
%r55 = or i96 %r49, %r54
%r56 = zext i96 %r55 to i128
%r58 = getelementptr i32, i32* %r3, i32 3
%r59 = load i32, i32* %r58
%r60 = zext i32 %r59 to i128
%r61 = shl i128 %r60, 96
%r62 = or i128 %r56, %r61
%r63 = zext i128 %r62 to i160
%r65 = getelementptr i32, i32* %r3, i32 4
%r66 = load i32, i32* %r65
%r67 = zext i32 %r66 to i160
%r68 = shl i160 %r67, 128
%r69 = or i160 %r63, %r68
%r70 = zext i160 %r69 to i192
%r72 = getelementptr i32, i32* %r3, i32 5
%r73 = load i32, i32* %r72
%r74 = zext i32 %r73 to i192
%r75 = shl i192 %r74, 160
%r76 = or i192 %r70, %r75
%r77 = zext i192 %r40 to i224
%r78 = zext i192 %r76 to i224
%r79 = add i224 %r77, %r78
%r80 = load i32, i32* %r4
%r81 = zext i32 %r80 to i64
%r83 = getelementptr i32, i32* %r4, i32 1
%r84 = load i32, i32* %r83
%r85 = zext i32 %r84 to i64
%r86 = shl i64 %r85, 32
%r87 = or i64 %r81, %r86
%r88 = zext i64 %r87 to i96
%r90 = getelementptr i32, i32* %r4, i32 2
%r91 = load i32, i32* %r90
%r92 = zext i32 %r91 to i96
%r93 = shl i96 %r92, 64
%r94 = or i96 %r88, %r93
%r95 = zext i96 %r94 to i128
%r97 = getelementptr i32, i32* %r4, i32 3
%r98 = load i32, i32* %r97
%r99 = zext i32 %r98 to i128
%r100 = shl i128 %r99, 96
%r101 = or i128 %r95, %r100
%r102 = zext i128 %r101 to i160
%r104 = getelementptr i32, i32* %r4, i32 4
%r105 = load i32, i32* %r104
%r106 = zext i32 %r105 to i160
%r107 = shl i160 %r106, 128
%r108 = or i160 %r102, %r107
%r109 = zext i160 %r108 to i192
%r111 = getelementptr i32, i32* %r4, i32 5
%r112 = load i32, i32* %r111
%r113 = zext i32 %r112 to i192
%r114 = shl i192 %r113, 160
%r115 = or i192 %r109, %r114
%r116 = zext i192 %r115 to i224
%r117 = sub i224 %r79, %r116
%r118 = lshr i224 %r117, 192
%r119 = trunc i224 %r118 to i1
%r120 = select i1 %r119, i224 %r79, i224 %r117
%r121 = trunc i224 %r120 to i192
%r123 = getelementptr i32, i32* %r1, i32 0
%r124 = trunc i192 %r121 to i32
store i32 %r124, i32* %r123
%r125 = lshr i192 %r121, 32
%r127 = getelementptr i32, i32* %r1, i32 1
%r128 = trunc i192 %r125 to i32
store i32 %r128, i32* %r127
%r129 = lshr i192 %r125, 32
%r131 = getelementptr i32, i32* %r1, i32 2
%r132 = trunc i192 %r129 to i32
store i32 %r132, i32* %r131
%r133 = lshr i192 %r129, 32
%r135 = getelementptr i32, i32* %r1, i32 3
%r136 = trunc i192 %r133 to i32
store i32 %r136, i32* %r135
%r137 = lshr i192 %r133, 32
%r139 = getelementptr i32, i32* %r1, i32 4
%r140 = trunc i192 %r137 to i32
store i32 %r140, i32* %r139
%r141 = lshr i192 %r137, 32
%r143 = getelementptr i32, i32* %r1, i32 5
%r144 = trunc i192 %r141 to i32
store i32 %r144, i32* %r143
ret void
}
define void @mcl_fp_addNF6L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = load i32, i32* %r3
%r42 = zext i32 %r41 to i64
%r44 = getelementptr i32, i32* %r3, i32 1
%r45 = load i32, i32* %r44
%r46 = zext i32 %r45 to i64
%r47 = shl i64 %r46, 32
%r48 = or i64 %r42, %r47
%r49 = zext i64 %r48 to i96
%r51 = getelementptr i32, i32* %r3, i32 2
%r52 = load i32, i32* %r51
%r53 = zext i32 %r52 to i96
%r54 = shl i96 %r53, 64
%r55 = or i96 %r49, %r54
%r56 = zext i96 %r55 to i128
%r58 = getelementptr i32, i32* %r3, i32 3
%r59 = load i32, i32* %r58
%r60 = zext i32 %r59 to i128
%r61 = shl i128 %r60, 96
%r62 = or i128 %r56, %r61
%r63 = zext i128 %r62 to i160
%r65 = getelementptr i32, i32* %r3, i32 4
%r66 = load i32, i32* %r65
%r67 = zext i32 %r66 to i160
%r68 = shl i160 %r67, 128
%r69 = or i160 %r63, %r68
%r70 = zext i160 %r69 to i192
%r72 = getelementptr i32, i32* %r3, i32 5
%r73 = load i32, i32* %r72
%r74 = zext i32 %r73 to i192
%r75 = shl i192 %r74, 160
%r76 = or i192 %r70, %r75
%r77 = add i192 %r40, %r76
%r78 = load i32, i32* %r4
%r79 = zext i32 %r78 to i64
%r81 = getelementptr i32, i32* %r4, i32 1
%r82 = load i32, i32* %r81
%r83 = zext i32 %r82 to i64
%r84 = shl i64 %r83, 32
%r85 = or i64 %r79, %r84
%r86 = zext i64 %r85 to i96
%r88 = getelementptr i32, i32* %r4, i32 2
%r89 = load i32, i32* %r88
%r90 = zext i32 %r89 to i96
%r91 = shl i96 %r90, 64
%r92 = or i96 %r86, %r91
%r93 = zext i96 %r92 to i128
%r95 = getelementptr i32, i32* %r4, i32 3
%r96 = load i32, i32* %r95
%r97 = zext i32 %r96 to i128
%r98 = shl i128 %r97, 96
%r99 = or i128 %r93, %r98
%r100 = zext i128 %r99 to i160
%r102 = getelementptr i32, i32* %r4, i32 4
%r103 = load i32, i32* %r102
%r104 = zext i32 %r103 to i160
%r105 = shl i160 %r104, 128
%r106 = or i160 %r100, %r105
%r107 = zext i160 %r106 to i192
%r109 = getelementptr i32, i32* %r4, i32 5
%r110 = load i32, i32* %r109
%r111 = zext i32 %r110 to i192
%r112 = shl i192 %r111, 160
%r113 = or i192 %r107, %r112
%r114 = sub i192 %r77, %r113
%r115 = lshr i192 %r114, 191
%r116 = trunc i192 %r115 to i1
%r117 = select i1 %r116, i192 %r77, i192 %r114
%r119 = getelementptr i32, i32* %r1, i32 0
%r120 = trunc i192 %r117 to i32
store i32 %r120, i32* %r119
%r121 = lshr i192 %r117, 32
%r123 = getelementptr i32, i32* %r1, i32 1
%r124 = trunc i192 %r121 to i32
store i32 %r124, i32* %r123
%r125 = lshr i192 %r121, 32
%r127 = getelementptr i32, i32* %r1, i32 2
%r128 = trunc i192 %r125 to i32
store i32 %r128, i32* %r127
%r129 = lshr i192 %r125, 32
%r131 = getelementptr i32, i32* %r1, i32 3
%r132 = trunc i192 %r129 to i32
store i32 %r132, i32* %r131
%r133 = lshr i192 %r129, 32
%r135 = getelementptr i32, i32* %r1, i32 4
%r136 = trunc i192 %r133 to i32
store i32 %r136, i32* %r135
%r137 = lshr i192 %r133, 32
%r139 = getelementptr i32, i32* %r1, i32 5
%r140 = trunc i192 %r137 to i32
store i32 %r140, i32* %r139
ret void
}
define void @mcl_fp_sub6L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = load i32, i32* %r3
%r42 = zext i32 %r41 to i64
%r44 = getelementptr i32, i32* %r3, i32 1
%r45 = load i32, i32* %r44
%r46 = zext i32 %r45 to i64
%r47 = shl i64 %r46, 32
%r48 = or i64 %r42, %r47
%r49 = zext i64 %r48 to i96
%r51 = getelementptr i32, i32* %r3, i32 2
%r52 = load i32, i32* %r51
%r53 = zext i32 %r52 to i96
%r54 = shl i96 %r53, 64
%r55 = or i96 %r49, %r54
%r56 = zext i96 %r55 to i128
%r58 = getelementptr i32, i32* %r3, i32 3
%r59 = load i32, i32* %r58
%r60 = zext i32 %r59 to i128
%r61 = shl i128 %r60, 96
%r62 = or i128 %r56, %r61
%r63 = zext i128 %r62 to i160
%r65 = getelementptr i32, i32* %r3, i32 4
%r66 = load i32, i32* %r65
%r67 = zext i32 %r66 to i160
%r68 = shl i160 %r67, 128
%r69 = or i160 %r63, %r68
%r70 = zext i160 %r69 to i192
%r72 = getelementptr i32, i32* %r3, i32 5
%r73 = load i32, i32* %r72
%r74 = zext i32 %r73 to i192
%r75 = shl i192 %r74, 160
%r76 = or i192 %r70, %r75
%r77 = zext i192 %r40 to i193
%r78 = zext i192 %r76 to i193
%r79 = sub i193 %r77, %r78
%r80 = lshr i193 %r79, 192
%r81 = trunc i193 %r80 to i1
%r82 = trunc i193 %r79 to i192
%r83 = load i32, i32* %r4
%r84 = zext i32 %r83 to i64
%r86 = getelementptr i32, i32* %r4, i32 1
%r87 = load i32, i32* %r86
%r88 = zext i32 %r87 to i64
%r89 = shl i64 %r88, 32
%r90 = or i64 %r84, %r89
%r91 = zext i64 %r90 to i96
%r93 = getelementptr i32, i32* %r4, i32 2
%r94 = load i32, i32* %r93
%r95 = zext i32 %r94 to i96
%r96 = shl i96 %r95, 64
%r97 = or i96 %r91, %r96
%r98 = zext i96 %r97 to i128
%r100 = getelementptr i32, i32* %r4, i32 3
%r101 = load i32, i32* %r100
%r102 = zext i32 %r101 to i128
%r103 = shl i128 %r102, 96
%r104 = or i128 %r98, %r103
%r105 = zext i128 %r104 to i160
%r107 = getelementptr i32, i32* %r4, i32 4
%r108 = load i32, i32* %r107
%r109 = zext i32 %r108 to i160
%r110 = shl i160 %r109, 128
%r111 = or i160 %r105, %r110
%r112 = zext i160 %r111 to i192
%r114 = getelementptr i32, i32* %r4, i32 5
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i192
%r117 = shl i192 %r116, 160
%r118 = or i192 %r112, %r117
%r120 = select i1 %r81, i192 %r118, i192 0
%r121 = add i192 %r82, %r120
%r123 = getelementptr i32, i32* %r1, i32 0
%r124 = trunc i192 %r121 to i32
store i32 %r124, i32* %r123
%r125 = lshr i192 %r121, 32
%r127 = getelementptr i32, i32* %r1, i32 1
%r128 = trunc i192 %r125 to i32
store i32 %r128, i32* %r127
%r129 = lshr i192 %r125, 32
%r131 = getelementptr i32, i32* %r1, i32 2
%r132 = trunc i192 %r129 to i32
store i32 %r132, i32* %r131
%r133 = lshr i192 %r129, 32
%r135 = getelementptr i32, i32* %r1, i32 3
%r136 = trunc i192 %r133 to i32
store i32 %r136, i32* %r135
%r137 = lshr i192 %r133, 32
%r139 = getelementptr i32, i32* %r1, i32 4
%r140 = trunc i192 %r137 to i32
store i32 %r140, i32* %r139
%r141 = lshr i192 %r137, 32
%r143 = getelementptr i32, i32* %r1, i32 5
%r144 = trunc i192 %r141 to i32
store i32 %r144, i32* %r143
ret void
}
define void @mcl_fp_subNF6L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = load i32, i32* %r3
%r42 = zext i32 %r41 to i64
%r44 = getelementptr i32, i32* %r3, i32 1
%r45 = load i32, i32* %r44
%r46 = zext i32 %r45 to i64
%r47 = shl i64 %r46, 32
%r48 = or i64 %r42, %r47
%r49 = zext i64 %r48 to i96
%r51 = getelementptr i32, i32* %r3, i32 2
%r52 = load i32, i32* %r51
%r53 = zext i32 %r52 to i96
%r54 = shl i96 %r53, 64
%r55 = or i96 %r49, %r54
%r56 = zext i96 %r55 to i128
%r58 = getelementptr i32, i32* %r3, i32 3
%r59 = load i32, i32* %r58
%r60 = zext i32 %r59 to i128
%r61 = shl i128 %r60, 96
%r62 = or i128 %r56, %r61
%r63 = zext i128 %r62 to i160
%r65 = getelementptr i32, i32* %r3, i32 4
%r66 = load i32, i32* %r65
%r67 = zext i32 %r66 to i160
%r68 = shl i160 %r67, 128
%r69 = or i160 %r63, %r68
%r70 = zext i160 %r69 to i192
%r72 = getelementptr i32, i32* %r3, i32 5
%r73 = load i32, i32* %r72
%r74 = zext i32 %r73 to i192
%r75 = shl i192 %r74, 160
%r76 = or i192 %r70, %r75
%r77 = sub i192 %r40, %r76
%r78 = lshr i192 %r77, 191
%r79 = trunc i192 %r78 to i1
%r80 = load i32, i32* %r4
%r81 = zext i32 %r80 to i64
%r83 = getelementptr i32, i32* %r4, i32 1
%r84 = load i32, i32* %r83
%r85 = zext i32 %r84 to i64
%r86 = shl i64 %r85, 32
%r87 = or i64 %r81, %r86
%r88 = zext i64 %r87 to i96
%r90 = getelementptr i32, i32* %r4, i32 2
%r91 = load i32, i32* %r90
%r92 = zext i32 %r91 to i96
%r93 = shl i96 %r92, 64
%r94 = or i96 %r88, %r93
%r95 = zext i96 %r94 to i128
%r97 = getelementptr i32, i32* %r4, i32 3
%r98 = load i32, i32* %r97
%r99 = zext i32 %r98 to i128
%r100 = shl i128 %r99, 96
%r101 = or i128 %r95, %r100
%r102 = zext i128 %r101 to i160
%r104 = getelementptr i32, i32* %r4, i32 4
%r105 = load i32, i32* %r104
%r106 = zext i32 %r105 to i160
%r107 = shl i160 %r106, 128
%r108 = or i160 %r102, %r107
%r109 = zext i160 %r108 to i192
%r111 = getelementptr i32, i32* %r4, i32 5
%r112 = load i32, i32* %r111
%r113 = zext i32 %r112 to i192
%r114 = shl i192 %r113, 160
%r115 = or i192 %r109, %r114
%r117 = select i1 %r79, i192 %r115, i192 0
%r118 = add i192 %r77, %r117
%r120 = getelementptr i32, i32* %r1, i32 0
%r121 = trunc i192 %r118 to i32
store i32 %r121, i32* %r120
%r122 = lshr i192 %r118, 32
%r124 = getelementptr i32, i32* %r1, i32 1
%r125 = trunc i192 %r122 to i32
store i32 %r125, i32* %r124
%r126 = lshr i192 %r122, 32
%r128 = getelementptr i32, i32* %r1, i32 2
%r129 = trunc i192 %r126 to i32
store i32 %r129, i32* %r128
%r130 = lshr i192 %r126, 32
%r132 = getelementptr i32, i32* %r1, i32 3
%r133 = trunc i192 %r130 to i32
store i32 %r133, i32* %r132
%r134 = lshr i192 %r130, 32
%r136 = getelementptr i32, i32* %r1, i32 4
%r137 = trunc i192 %r134 to i32
store i32 %r137, i32* %r136
%r138 = lshr i192 %r134, 32
%r140 = getelementptr i32, i32* %r1, i32 5
%r141 = trunc i192 %r138 to i32
store i32 %r141, i32* %r140
ret void
}
define void @mcl_fpDbl_add6L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r2, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r2, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r2, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r2, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = load i32, i32* %r3
%r84 = zext i32 %r83 to i64
%r86 = getelementptr i32, i32* %r3, i32 1
%r87 = load i32, i32* %r86
%r88 = zext i32 %r87 to i64
%r89 = shl i64 %r88, 32
%r90 = or i64 %r84, %r89
%r91 = zext i64 %r90 to i96
%r93 = getelementptr i32, i32* %r3, i32 2
%r94 = load i32, i32* %r93
%r95 = zext i32 %r94 to i96
%r96 = shl i96 %r95, 64
%r97 = or i96 %r91, %r96
%r98 = zext i96 %r97 to i128
%r100 = getelementptr i32, i32* %r3, i32 3
%r101 = load i32, i32* %r100
%r102 = zext i32 %r101 to i128
%r103 = shl i128 %r102, 96
%r104 = or i128 %r98, %r103
%r105 = zext i128 %r104 to i160
%r107 = getelementptr i32, i32* %r3, i32 4
%r108 = load i32, i32* %r107
%r109 = zext i32 %r108 to i160
%r110 = shl i160 %r109, 128
%r111 = or i160 %r105, %r110
%r112 = zext i160 %r111 to i192
%r114 = getelementptr i32, i32* %r3, i32 5
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i192
%r117 = shl i192 %r116, 160
%r118 = or i192 %r112, %r117
%r119 = zext i192 %r118 to i224
%r121 = getelementptr i32, i32* %r3, i32 6
%r122 = load i32, i32* %r121
%r123 = zext i32 %r122 to i224
%r124 = shl i224 %r123, 192
%r125 = or i224 %r119, %r124
%r126 = zext i224 %r125 to i256
%r128 = getelementptr i32, i32* %r3, i32 7
%r129 = load i32, i32* %r128
%r130 = zext i32 %r129 to i256
%r131 = shl i256 %r130, 224
%r132 = or i256 %r126, %r131
%r133 = zext i256 %r132 to i288
%r135 = getelementptr i32, i32* %r3, i32 8
%r136 = load i32, i32* %r135
%r137 = zext i32 %r136 to i288
%r138 = shl i288 %r137, 256
%r139 = or i288 %r133, %r138
%r140 = zext i288 %r139 to i320
%r142 = getelementptr i32, i32* %r3, i32 9
%r143 = load i32, i32* %r142
%r144 = zext i32 %r143 to i320
%r145 = shl i320 %r144, 288
%r146 = or i320 %r140, %r145
%r147 = zext i320 %r146 to i352
%r149 = getelementptr i32, i32* %r3, i32 10
%r150 = load i32, i32* %r149
%r151 = zext i32 %r150 to i352
%r152 = shl i352 %r151, 320
%r153 = or i352 %r147, %r152
%r154 = zext i352 %r153 to i384
%r156 = getelementptr i32, i32* %r3, i32 11
%r157 = load i32, i32* %r156
%r158 = zext i32 %r157 to i384
%r159 = shl i384 %r158, 352
%r160 = or i384 %r154, %r159
%r161 = zext i384 %r82 to i416
%r162 = zext i384 %r160 to i416
%r163 = add i416 %r161, %r162
%r164 = trunc i416 %r163 to i192
%r166 = getelementptr i32, i32* %r1, i32 0
%r167 = trunc i192 %r164 to i32
store i32 %r167, i32* %r166
%r168 = lshr i192 %r164, 32
%r170 = getelementptr i32, i32* %r1, i32 1
%r171 = trunc i192 %r168 to i32
store i32 %r171, i32* %r170
%r172 = lshr i192 %r168, 32
%r174 = getelementptr i32, i32* %r1, i32 2
%r175 = trunc i192 %r172 to i32
store i32 %r175, i32* %r174
%r176 = lshr i192 %r172, 32
%r178 = getelementptr i32, i32* %r1, i32 3
%r179 = trunc i192 %r176 to i32
store i32 %r179, i32* %r178
%r180 = lshr i192 %r176, 32
%r182 = getelementptr i32, i32* %r1, i32 4
%r183 = trunc i192 %r180 to i32
store i32 %r183, i32* %r182
%r184 = lshr i192 %r180, 32
%r186 = getelementptr i32, i32* %r1, i32 5
%r187 = trunc i192 %r184 to i32
store i32 %r187, i32* %r186
%r188 = lshr i416 %r163, 192
%r189 = trunc i416 %r188 to i224
%r190 = load i32, i32* %r4
%r191 = zext i32 %r190 to i64
%r193 = getelementptr i32, i32* %r4, i32 1
%r194 = load i32, i32* %r193
%r195 = zext i32 %r194 to i64
%r196 = shl i64 %r195, 32
%r197 = or i64 %r191, %r196
%r198 = zext i64 %r197 to i96
%r200 = getelementptr i32, i32* %r4, i32 2
%r201 = load i32, i32* %r200
%r202 = zext i32 %r201 to i96
%r203 = shl i96 %r202, 64
%r204 = or i96 %r198, %r203
%r205 = zext i96 %r204 to i128
%r207 = getelementptr i32, i32* %r4, i32 3
%r208 = load i32, i32* %r207
%r209 = zext i32 %r208 to i128
%r210 = shl i128 %r209, 96
%r211 = or i128 %r205, %r210
%r212 = zext i128 %r211 to i160
%r214 = getelementptr i32, i32* %r4, i32 4
%r215 = load i32, i32* %r214
%r216 = zext i32 %r215 to i160
%r217 = shl i160 %r216, 128
%r218 = or i160 %r212, %r217
%r219 = zext i160 %r218 to i192
%r221 = getelementptr i32, i32* %r4, i32 5
%r222 = load i32, i32* %r221
%r223 = zext i32 %r222 to i192
%r224 = shl i192 %r223, 160
%r225 = or i192 %r219, %r224
%r226 = zext i192 %r225 to i224
%r227 = sub i224 %r189, %r226
%r228 = lshr i224 %r227, 192
%r229 = trunc i224 %r228 to i1
%r230 = select i1 %r229, i224 %r189, i224 %r227
%r231 = trunc i224 %r230 to i192
%r233 = getelementptr i32, i32* %r1, i32 6
%r235 = getelementptr i32, i32* %r233, i32 0
%r236 = trunc i192 %r231 to i32
store i32 %r236, i32* %r235
%r237 = lshr i192 %r231, 32
%r239 = getelementptr i32, i32* %r233, i32 1
%r240 = trunc i192 %r237 to i32
store i32 %r240, i32* %r239
%r241 = lshr i192 %r237, 32
%r243 = getelementptr i32, i32* %r233, i32 2
%r244 = trunc i192 %r241 to i32
store i32 %r244, i32* %r243
%r245 = lshr i192 %r241, 32
%r247 = getelementptr i32, i32* %r233, i32 3
%r248 = trunc i192 %r245 to i32
store i32 %r248, i32* %r247
%r249 = lshr i192 %r245, 32
%r251 = getelementptr i32, i32* %r233, i32 4
%r252 = trunc i192 %r249 to i32
store i32 %r252, i32* %r251
%r253 = lshr i192 %r249, 32
%r255 = getelementptr i32, i32* %r233, i32 5
%r256 = trunc i192 %r253 to i32
store i32 %r256, i32* %r255
ret void
}
define void @mcl_fpDbl_sub6L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r2, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r2, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r2, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r2, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = load i32, i32* %r3
%r84 = zext i32 %r83 to i64
%r86 = getelementptr i32, i32* %r3, i32 1
%r87 = load i32, i32* %r86
%r88 = zext i32 %r87 to i64
%r89 = shl i64 %r88, 32
%r90 = or i64 %r84, %r89
%r91 = zext i64 %r90 to i96
%r93 = getelementptr i32, i32* %r3, i32 2
%r94 = load i32, i32* %r93
%r95 = zext i32 %r94 to i96
%r96 = shl i96 %r95, 64
%r97 = or i96 %r91, %r96
%r98 = zext i96 %r97 to i128
%r100 = getelementptr i32, i32* %r3, i32 3
%r101 = load i32, i32* %r100
%r102 = zext i32 %r101 to i128
%r103 = shl i128 %r102, 96
%r104 = or i128 %r98, %r103
%r105 = zext i128 %r104 to i160
%r107 = getelementptr i32, i32* %r3, i32 4
%r108 = load i32, i32* %r107
%r109 = zext i32 %r108 to i160
%r110 = shl i160 %r109, 128
%r111 = or i160 %r105, %r110
%r112 = zext i160 %r111 to i192
%r114 = getelementptr i32, i32* %r3, i32 5
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i192
%r117 = shl i192 %r116, 160
%r118 = or i192 %r112, %r117
%r119 = zext i192 %r118 to i224
%r121 = getelementptr i32, i32* %r3, i32 6
%r122 = load i32, i32* %r121
%r123 = zext i32 %r122 to i224
%r124 = shl i224 %r123, 192
%r125 = or i224 %r119, %r124
%r126 = zext i224 %r125 to i256
%r128 = getelementptr i32, i32* %r3, i32 7
%r129 = load i32, i32* %r128
%r130 = zext i32 %r129 to i256
%r131 = shl i256 %r130, 224
%r132 = or i256 %r126, %r131
%r133 = zext i256 %r132 to i288
%r135 = getelementptr i32, i32* %r3, i32 8
%r136 = load i32, i32* %r135
%r137 = zext i32 %r136 to i288
%r138 = shl i288 %r137, 256
%r139 = or i288 %r133, %r138
%r140 = zext i288 %r139 to i320
%r142 = getelementptr i32, i32* %r3, i32 9
%r143 = load i32, i32* %r142
%r144 = zext i32 %r143 to i320
%r145 = shl i320 %r144, 288
%r146 = or i320 %r140, %r145
%r147 = zext i320 %r146 to i352
%r149 = getelementptr i32, i32* %r3, i32 10
%r150 = load i32, i32* %r149
%r151 = zext i32 %r150 to i352
%r152 = shl i352 %r151, 320
%r153 = or i352 %r147, %r152
%r154 = zext i352 %r153 to i384
%r156 = getelementptr i32, i32* %r3, i32 11
%r157 = load i32, i32* %r156
%r158 = zext i32 %r157 to i384
%r159 = shl i384 %r158, 352
%r160 = or i384 %r154, %r159
%r161 = zext i384 %r82 to i416
%r162 = zext i384 %r160 to i416
%r163 = sub i416 %r161, %r162
%r164 = trunc i416 %r163 to i192
%r166 = getelementptr i32, i32* %r1, i32 0
%r167 = trunc i192 %r164 to i32
store i32 %r167, i32* %r166
%r168 = lshr i192 %r164, 32
%r170 = getelementptr i32, i32* %r1, i32 1
%r171 = trunc i192 %r168 to i32
store i32 %r171, i32* %r170
%r172 = lshr i192 %r168, 32
%r174 = getelementptr i32, i32* %r1, i32 2
%r175 = trunc i192 %r172 to i32
store i32 %r175, i32* %r174
%r176 = lshr i192 %r172, 32
%r178 = getelementptr i32, i32* %r1, i32 3
%r179 = trunc i192 %r176 to i32
store i32 %r179, i32* %r178
%r180 = lshr i192 %r176, 32
%r182 = getelementptr i32, i32* %r1, i32 4
%r183 = trunc i192 %r180 to i32
store i32 %r183, i32* %r182
%r184 = lshr i192 %r180, 32
%r186 = getelementptr i32, i32* %r1, i32 5
%r187 = trunc i192 %r184 to i32
store i32 %r187, i32* %r186
%r188 = lshr i416 %r163, 192
%r189 = trunc i416 %r188 to i192
%r190 = lshr i416 %r163, 384
%r191 = trunc i416 %r190 to i1
%r192 = load i32, i32* %r4
%r193 = zext i32 %r192 to i64
%r195 = getelementptr i32, i32* %r4, i32 1
%r196 = load i32, i32* %r195
%r197 = zext i32 %r196 to i64
%r198 = shl i64 %r197, 32
%r199 = or i64 %r193, %r198
%r200 = zext i64 %r199 to i96
%r202 = getelementptr i32, i32* %r4, i32 2
%r203 = load i32, i32* %r202
%r204 = zext i32 %r203 to i96
%r205 = shl i96 %r204, 64
%r206 = or i96 %r200, %r205
%r207 = zext i96 %r206 to i128
%r209 = getelementptr i32, i32* %r4, i32 3
%r210 = load i32, i32* %r209
%r211 = zext i32 %r210 to i128
%r212 = shl i128 %r211, 96
%r213 = or i128 %r207, %r212
%r214 = zext i128 %r213 to i160
%r216 = getelementptr i32, i32* %r4, i32 4
%r217 = load i32, i32* %r216
%r218 = zext i32 %r217 to i160
%r219 = shl i160 %r218, 128
%r220 = or i160 %r214, %r219
%r221 = zext i160 %r220 to i192
%r223 = getelementptr i32, i32* %r4, i32 5
%r224 = load i32, i32* %r223
%r225 = zext i32 %r224 to i192
%r226 = shl i192 %r225, 160
%r227 = or i192 %r221, %r226
%r229 = select i1 %r191, i192 %r227, i192 0
%r230 = add i192 %r189, %r229
%r232 = getelementptr i32, i32* %r1, i32 6
%r234 = getelementptr i32, i32* %r232, i32 0
%r235 = trunc i192 %r230 to i32
store i32 %r235, i32* %r234
%r236 = lshr i192 %r230, 32
%r238 = getelementptr i32, i32* %r232, i32 1
%r239 = trunc i192 %r236 to i32
store i32 %r239, i32* %r238
%r240 = lshr i192 %r236, 32
%r242 = getelementptr i32, i32* %r232, i32 2
%r243 = trunc i192 %r240 to i32
store i32 %r243, i32* %r242
%r244 = lshr i192 %r240, 32
%r246 = getelementptr i32, i32* %r232, i32 3
%r247 = trunc i192 %r244 to i32
store i32 %r247, i32* %r246
%r248 = lshr i192 %r244, 32
%r250 = getelementptr i32, i32* %r232, i32 4
%r251 = trunc i192 %r248 to i32
store i32 %r251, i32* %r250
%r252 = lshr i192 %r248, 32
%r254 = getelementptr i32, i32* %r232, i32 5
%r255 = trunc i192 %r252 to i32
store i32 %r255, i32* %r254
ret void
}
define i256 @mulPv224x32(i32* noalias  %r2, i32 %r3)
{
%r5 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 0)
%r6 = trunc i64 %r5 to i32
%r7 = call i32 @extractHigh32(i64 %r5)
%r9 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 1)
%r10 = trunc i64 %r9 to i32
%r11 = call i32 @extractHigh32(i64 %r9)
%r13 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 2)
%r14 = trunc i64 %r13 to i32
%r15 = call i32 @extractHigh32(i64 %r13)
%r17 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 3)
%r18 = trunc i64 %r17 to i32
%r19 = call i32 @extractHigh32(i64 %r17)
%r21 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 4)
%r22 = trunc i64 %r21 to i32
%r23 = call i32 @extractHigh32(i64 %r21)
%r25 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 5)
%r26 = trunc i64 %r25 to i32
%r27 = call i32 @extractHigh32(i64 %r25)
%r29 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 6)
%r30 = trunc i64 %r29 to i32
%r31 = call i32 @extractHigh32(i64 %r29)
%r32 = zext i32 %r6 to i64
%r33 = zext i32 %r10 to i64
%r34 = shl i64 %r33, 32
%r35 = or i64 %r32, %r34
%r36 = zext i64 %r35 to i96
%r37 = zext i32 %r14 to i96
%r38 = shl i96 %r37, 64
%r39 = or i96 %r36, %r38
%r40 = zext i96 %r39 to i128
%r41 = zext i32 %r18 to i128
%r42 = shl i128 %r41, 96
%r43 = or i128 %r40, %r42
%r44 = zext i128 %r43 to i160
%r45 = zext i32 %r22 to i160
%r46 = shl i160 %r45, 128
%r47 = or i160 %r44, %r46
%r48 = zext i160 %r47 to i192
%r49 = zext i32 %r26 to i192
%r50 = shl i192 %r49, 160
%r51 = or i192 %r48, %r50
%r52 = zext i192 %r51 to i224
%r53 = zext i32 %r30 to i224
%r54 = shl i224 %r53, 192
%r55 = or i224 %r52, %r54
%r56 = zext i32 %r7 to i64
%r57 = zext i32 %r11 to i64
%r58 = shl i64 %r57, 32
%r59 = or i64 %r56, %r58
%r60 = zext i64 %r59 to i96
%r61 = zext i32 %r15 to i96
%r62 = shl i96 %r61, 64
%r63 = or i96 %r60, %r62
%r64 = zext i96 %r63 to i128
%r65 = zext i32 %r19 to i128
%r66 = shl i128 %r65, 96
%r67 = or i128 %r64, %r66
%r68 = zext i128 %r67 to i160
%r69 = zext i32 %r23 to i160
%r70 = shl i160 %r69, 128
%r71 = or i160 %r68, %r70
%r72 = zext i160 %r71 to i192
%r73 = zext i32 %r27 to i192
%r74 = shl i192 %r73, 160
%r75 = or i192 %r72, %r74
%r76 = zext i192 %r75 to i224
%r77 = zext i32 %r31 to i224
%r78 = shl i224 %r77, 192
%r79 = or i224 %r76, %r78
%r80 = zext i224 %r55 to i256
%r81 = zext i224 %r79 to i256
%r82 = shl i256 %r81, 32
%r83 = add i256 %r80, %r82
ret i256 %r83
}
define void @mcl_fp_mont7L(i32* %r1, i32* %r2, i32* %r3, i32* %r4)
{
%r6 = getelementptr i32, i32* %r4, i32 -1
%r7 = load i32, i32* %r6
%r9 = getelementptr i32, i32* %r3, i32 0
%r10 = load i32, i32* %r9
%r11 = call i256 @mulPv224x32(i32* %r2, i32 %r10)
%r12 = zext i256 %r11 to i288
%r13 = trunc i256 %r11 to i32
%r14 = mul i32 %r13, %r7
%r15 = call i256 @mulPv224x32(i32* %r4, i32 %r14)
%r16 = zext i256 %r15 to i288
%r17 = add i288 %r12, %r16
%r18 = lshr i288 %r17, 32
%r20 = getelementptr i32, i32* %r3, i32 1
%r21 = load i32, i32* %r20
%r22 = call i256 @mulPv224x32(i32* %r2, i32 %r21)
%r23 = zext i256 %r22 to i288
%r24 = add i288 %r18, %r23
%r25 = trunc i288 %r24 to i32
%r26 = mul i32 %r25, %r7
%r27 = call i256 @mulPv224x32(i32* %r4, i32 %r26)
%r28 = zext i256 %r27 to i288
%r29 = add i288 %r24, %r28
%r30 = lshr i288 %r29, 32
%r32 = getelementptr i32, i32* %r3, i32 2
%r33 = load i32, i32* %r32
%r34 = call i256 @mulPv224x32(i32* %r2, i32 %r33)
%r35 = zext i256 %r34 to i288
%r36 = add i288 %r30, %r35
%r37 = trunc i288 %r36 to i32
%r38 = mul i32 %r37, %r7
%r39 = call i256 @mulPv224x32(i32* %r4, i32 %r38)
%r40 = zext i256 %r39 to i288
%r41 = add i288 %r36, %r40
%r42 = lshr i288 %r41, 32
%r44 = getelementptr i32, i32* %r3, i32 3
%r45 = load i32, i32* %r44
%r46 = call i256 @mulPv224x32(i32* %r2, i32 %r45)
%r47 = zext i256 %r46 to i288
%r48 = add i288 %r42, %r47
%r49 = trunc i288 %r48 to i32
%r50 = mul i32 %r49, %r7
%r51 = call i256 @mulPv224x32(i32* %r4, i32 %r50)
%r52 = zext i256 %r51 to i288
%r53 = add i288 %r48, %r52
%r54 = lshr i288 %r53, 32
%r56 = getelementptr i32, i32* %r3, i32 4
%r57 = load i32, i32* %r56
%r58 = call i256 @mulPv224x32(i32* %r2, i32 %r57)
%r59 = zext i256 %r58 to i288
%r60 = add i288 %r54, %r59
%r61 = trunc i288 %r60 to i32
%r62 = mul i32 %r61, %r7
%r63 = call i256 @mulPv224x32(i32* %r4, i32 %r62)
%r64 = zext i256 %r63 to i288
%r65 = add i288 %r60, %r64
%r66 = lshr i288 %r65, 32
%r68 = getelementptr i32, i32* %r3, i32 5
%r69 = load i32, i32* %r68
%r70 = call i256 @mulPv224x32(i32* %r2, i32 %r69)
%r71 = zext i256 %r70 to i288
%r72 = add i288 %r66, %r71
%r73 = trunc i288 %r72 to i32
%r74 = mul i32 %r73, %r7
%r75 = call i256 @mulPv224x32(i32* %r4, i32 %r74)
%r76 = zext i256 %r75 to i288
%r77 = add i288 %r72, %r76
%r78 = lshr i288 %r77, 32
%r80 = getelementptr i32, i32* %r3, i32 6
%r81 = load i32, i32* %r80
%r82 = call i256 @mulPv224x32(i32* %r2, i32 %r81)
%r83 = zext i256 %r82 to i288
%r84 = add i288 %r78, %r83
%r85 = trunc i288 %r84 to i32
%r86 = mul i32 %r85, %r7
%r87 = call i256 @mulPv224x32(i32* %r4, i32 %r86)
%r88 = zext i256 %r87 to i288
%r89 = add i288 %r84, %r88
%r90 = lshr i288 %r89, 32
%r91 = trunc i288 %r90 to i256
%r92 = load i32, i32* %r4
%r93 = zext i32 %r92 to i64
%r95 = getelementptr i32, i32* %r4, i32 1
%r96 = load i32, i32* %r95
%r97 = zext i32 %r96 to i64
%r98 = shl i64 %r97, 32
%r99 = or i64 %r93, %r98
%r100 = zext i64 %r99 to i96
%r102 = getelementptr i32, i32* %r4, i32 2
%r103 = load i32, i32* %r102
%r104 = zext i32 %r103 to i96
%r105 = shl i96 %r104, 64
%r106 = or i96 %r100, %r105
%r107 = zext i96 %r106 to i128
%r109 = getelementptr i32, i32* %r4, i32 3
%r110 = load i32, i32* %r109
%r111 = zext i32 %r110 to i128
%r112 = shl i128 %r111, 96
%r113 = or i128 %r107, %r112
%r114 = zext i128 %r113 to i160
%r116 = getelementptr i32, i32* %r4, i32 4
%r117 = load i32, i32* %r116
%r118 = zext i32 %r117 to i160
%r119 = shl i160 %r118, 128
%r120 = or i160 %r114, %r119
%r121 = zext i160 %r120 to i192
%r123 = getelementptr i32, i32* %r4, i32 5
%r124 = load i32, i32* %r123
%r125 = zext i32 %r124 to i192
%r126 = shl i192 %r125, 160
%r127 = or i192 %r121, %r126
%r128 = zext i192 %r127 to i224
%r130 = getelementptr i32, i32* %r4, i32 6
%r131 = load i32, i32* %r130
%r132 = zext i32 %r131 to i224
%r133 = shl i224 %r132, 192
%r134 = or i224 %r128, %r133
%r135 = zext i224 %r134 to i256
%r136 = sub i256 %r91, %r135
%r137 = lshr i256 %r136, 224
%r138 = trunc i256 %r137 to i1
%r139 = select i1 %r138, i256 %r91, i256 %r136
%r140 = trunc i256 %r139 to i224
%r142 = getelementptr i32, i32* %r1, i32 0
%r143 = trunc i224 %r140 to i32
store i32 %r143, i32* %r142
%r144 = lshr i224 %r140, 32
%r146 = getelementptr i32, i32* %r1, i32 1
%r147 = trunc i224 %r144 to i32
store i32 %r147, i32* %r146
%r148 = lshr i224 %r144, 32
%r150 = getelementptr i32, i32* %r1, i32 2
%r151 = trunc i224 %r148 to i32
store i32 %r151, i32* %r150
%r152 = lshr i224 %r148, 32
%r154 = getelementptr i32, i32* %r1, i32 3
%r155 = trunc i224 %r152 to i32
store i32 %r155, i32* %r154
%r156 = lshr i224 %r152, 32
%r158 = getelementptr i32, i32* %r1, i32 4
%r159 = trunc i224 %r156 to i32
store i32 %r159, i32* %r158
%r160 = lshr i224 %r156, 32
%r162 = getelementptr i32, i32* %r1, i32 5
%r163 = trunc i224 %r160 to i32
store i32 %r163, i32* %r162
%r164 = lshr i224 %r160, 32
%r166 = getelementptr i32, i32* %r1, i32 6
%r167 = trunc i224 %r164 to i32
store i32 %r167, i32* %r166
ret void
}
define void @mcl_fp_montNF7L(i32* %r1, i32* %r2, i32* %r3, i32* %r4)
{
%r6 = getelementptr i32, i32* %r4, i32 -1
%r7 = load i32, i32* %r6
%r8 = load i32, i32* %r3
%r9 = call i256 @mulPv224x32(i32* %r2, i32 %r8)
%r10 = trunc i256 %r9 to i32
%r11 = mul i32 %r10, %r7
%r12 = call i256 @mulPv224x32(i32* %r4, i32 %r11)
%r13 = add i256 %r9, %r12
%r14 = lshr i256 %r13, 32
%r16 = getelementptr i32, i32* %r3, i32 1
%r17 = load i32, i32* %r16
%r18 = call i256 @mulPv224x32(i32* %r2, i32 %r17)
%r19 = add i256 %r14, %r18
%r20 = trunc i256 %r19 to i32
%r21 = mul i32 %r20, %r7
%r22 = call i256 @mulPv224x32(i32* %r4, i32 %r21)
%r23 = add i256 %r19, %r22
%r24 = lshr i256 %r23, 32
%r26 = getelementptr i32, i32* %r3, i32 2
%r27 = load i32, i32* %r26
%r28 = call i256 @mulPv224x32(i32* %r2, i32 %r27)
%r29 = add i256 %r24, %r28
%r30 = trunc i256 %r29 to i32
%r31 = mul i32 %r30, %r7
%r32 = call i256 @mulPv224x32(i32* %r4, i32 %r31)
%r33 = add i256 %r29, %r32
%r34 = lshr i256 %r33, 32
%r36 = getelementptr i32, i32* %r3, i32 3
%r37 = load i32, i32* %r36
%r38 = call i256 @mulPv224x32(i32* %r2, i32 %r37)
%r39 = add i256 %r34, %r38
%r40 = trunc i256 %r39 to i32
%r41 = mul i32 %r40, %r7
%r42 = call i256 @mulPv224x32(i32* %r4, i32 %r41)
%r43 = add i256 %r39, %r42
%r44 = lshr i256 %r43, 32
%r46 = getelementptr i32, i32* %r3, i32 4
%r47 = load i32, i32* %r46
%r48 = call i256 @mulPv224x32(i32* %r2, i32 %r47)
%r49 = add i256 %r44, %r48
%r50 = trunc i256 %r49 to i32
%r51 = mul i32 %r50, %r7
%r52 = call i256 @mulPv224x32(i32* %r4, i32 %r51)
%r53 = add i256 %r49, %r52
%r54 = lshr i256 %r53, 32
%r56 = getelementptr i32, i32* %r3, i32 5
%r57 = load i32, i32* %r56
%r58 = call i256 @mulPv224x32(i32* %r2, i32 %r57)
%r59 = add i256 %r54, %r58
%r60 = trunc i256 %r59 to i32
%r61 = mul i32 %r60, %r7
%r62 = call i256 @mulPv224x32(i32* %r4, i32 %r61)
%r63 = add i256 %r59, %r62
%r64 = lshr i256 %r63, 32
%r66 = getelementptr i32, i32* %r3, i32 6
%r67 = load i32, i32* %r66
%r68 = call i256 @mulPv224x32(i32* %r2, i32 %r67)
%r69 = add i256 %r64, %r68
%r70 = trunc i256 %r69 to i32
%r71 = mul i32 %r70, %r7
%r72 = call i256 @mulPv224x32(i32* %r4, i32 %r71)
%r73 = add i256 %r69, %r72
%r74 = lshr i256 %r73, 32
%r75 = trunc i256 %r74 to i224
%r76 = load i32, i32* %r4
%r77 = zext i32 %r76 to i64
%r79 = getelementptr i32, i32* %r4, i32 1
%r80 = load i32, i32* %r79
%r81 = zext i32 %r80 to i64
%r82 = shl i64 %r81, 32
%r83 = or i64 %r77, %r82
%r84 = zext i64 %r83 to i96
%r86 = getelementptr i32, i32* %r4, i32 2
%r87 = load i32, i32* %r86
%r88 = zext i32 %r87 to i96
%r89 = shl i96 %r88, 64
%r90 = or i96 %r84, %r89
%r91 = zext i96 %r90 to i128
%r93 = getelementptr i32, i32* %r4, i32 3
%r94 = load i32, i32* %r93
%r95 = zext i32 %r94 to i128
%r96 = shl i128 %r95, 96
%r97 = or i128 %r91, %r96
%r98 = zext i128 %r97 to i160
%r100 = getelementptr i32, i32* %r4, i32 4
%r101 = load i32, i32* %r100
%r102 = zext i32 %r101 to i160
%r103 = shl i160 %r102, 128
%r104 = or i160 %r98, %r103
%r105 = zext i160 %r104 to i192
%r107 = getelementptr i32, i32* %r4, i32 5
%r108 = load i32, i32* %r107
%r109 = zext i32 %r108 to i192
%r110 = shl i192 %r109, 160
%r111 = or i192 %r105, %r110
%r112 = zext i192 %r111 to i224
%r114 = getelementptr i32, i32* %r4, i32 6
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i224
%r117 = shl i224 %r116, 192
%r118 = or i224 %r112, %r117
%r119 = sub i224 %r75, %r118
%r120 = lshr i224 %r119, 223
%r121 = trunc i224 %r120 to i1
%r122 = select i1 %r121, i224 %r75, i224 %r119
%r124 = getelementptr i32, i32* %r1, i32 0
%r125 = trunc i224 %r122 to i32
store i32 %r125, i32* %r124
%r126 = lshr i224 %r122, 32
%r128 = getelementptr i32, i32* %r1, i32 1
%r129 = trunc i224 %r126 to i32
store i32 %r129, i32* %r128
%r130 = lshr i224 %r126, 32
%r132 = getelementptr i32, i32* %r1, i32 2
%r133 = trunc i224 %r130 to i32
store i32 %r133, i32* %r132
%r134 = lshr i224 %r130, 32
%r136 = getelementptr i32, i32* %r1, i32 3
%r137 = trunc i224 %r134 to i32
store i32 %r137, i32* %r136
%r138 = lshr i224 %r134, 32
%r140 = getelementptr i32, i32* %r1, i32 4
%r141 = trunc i224 %r138 to i32
store i32 %r141, i32* %r140
%r142 = lshr i224 %r138, 32
%r144 = getelementptr i32, i32* %r1, i32 5
%r145 = trunc i224 %r142 to i32
store i32 %r145, i32* %r144
%r146 = lshr i224 %r142, 32
%r148 = getelementptr i32, i32* %r1, i32 6
%r149 = trunc i224 %r146 to i32
store i32 %r149, i32* %r148
ret void
}
define void @mcl_fp_montRed7L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3)
{
%r5 = getelementptr i32, i32* %r3, i32 -1
%r6 = load i32, i32* %r5
%r7 = load i32, i32* %r3
%r8 = zext i32 %r7 to i64
%r10 = getelementptr i32, i32* %r3, i32 1
%r11 = load i32, i32* %r10
%r12 = zext i32 %r11 to i64
%r13 = shl i64 %r12, 32
%r14 = or i64 %r8, %r13
%r15 = zext i64 %r14 to i96
%r17 = getelementptr i32, i32* %r3, i32 2
%r18 = load i32, i32* %r17
%r19 = zext i32 %r18 to i96
%r20 = shl i96 %r19, 64
%r21 = or i96 %r15, %r20
%r22 = zext i96 %r21 to i128
%r24 = getelementptr i32, i32* %r3, i32 3
%r25 = load i32, i32* %r24
%r26 = zext i32 %r25 to i128
%r27 = shl i128 %r26, 96
%r28 = or i128 %r22, %r27
%r29 = zext i128 %r28 to i160
%r31 = getelementptr i32, i32* %r3, i32 4
%r32 = load i32, i32* %r31
%r33 = zext i32 %r32 to i160
%r34 = shl i160 %r33, 128
%r35 = or i160 %r29, %r34
%r36 = zext i160 %r35 to i192
%r38 = getelementptr i32, i32* %r3, i32 5
%r39 = load i32, i32* %r38
%r40 = zext i32 %r39 to i192
%r41 = shl i192 %r40, 160
%r42 = or i192 %r36, %r41
%r43 = zext i192 %r42 to i224
%r45 = getelementptr i32, i32* %r3, i32 6
%r46 = load i32, i32* %r45
%r47 = zext i32 %r46 to i224
%r48 = shl i224 %r47, 192
%r49 = or i224 %r43, %r48
%r50 = load i32, i32* %r2
%r51 = zext i32 %r50 to i64
%r53 = getelementptr i32, i32* %r2, i32 1
%r54 = load i32, i32* %r53
%r55 = zext i32 %r54 to i64
%r56 = shl i64 %r55, 32
%r57 = or i64 %r51, %r56
%r58 = zext i64 %r57 to i96
%r60 = getelementptr i32, i32* %r2, i32 2
%r61 = load i32, i32* %r60
%r62 = zext i32 %r61 to i96
%r63 = shl i96 %r62, 64
%r64 = or i96 %r58, %r63
%r65 = zext i96 %r64 to i128
%r67 = getelementptr i32, i32* %r2, i32 3
%r68 = load i32, i32* %r67
%r69 = zext i32 %r68 to i128
%r70 = shl i128 %r69, 96
%r71 = or i128 %r65, %r70
%r72 = zext i128 %r71 to i160
%r74 = getelementptr i32, i32* %r2, i32 4
%r75 = load i32, i32* %r74
%r76 = zext i32 %r75 to i160
%r77 = shl i160 %r76, 128
%r78 = or i160 %r72, %r77
%r79 = zext i160 %r78 to i192
%r81 = getelementptr i32, i32* %r2, i32 5
%r82 = load i32, i32* %r81
%r83 = zext i32 %r82 to i192
%r84 = shl i192 %r83, 160
%r85 = or i192 %r79, %r84
%r86 = zext i192 %r85 to i224
%r88 = getelementptr i32, i32* %r2, i32 6
%r89 = load i32, i32* %r88
%r90 = zext i32 %r89 to i224
%r91 = shl i224 %r90, 192
%r92 = or i224 %r86, %r91
%r93 = trunc i224 %r92 to i32
%r94 = mul i32 %r93, %r6
%r95 = call i256 @mulPv224x32(i32* %r3, i32 %r94)
%r97 = getelementptr i32, i32* %r2, i32 7
%r98 = load i32, i32* %r97
%r99 = zext i32 %r98 to i256
%r100 = shl i256 %r99, 224
%r101 = zext i224 %r92 to i256
%r102 = or i256 %r100, %r101
%r103 = zext i256 %r102 to i288
%r104 = zext i256 %r95 to i288
%r105 = add i288 %r103, %r104
%r106 = lshr i288 %r105, 32
%r107 = trunc i288 %r106 to i256
%r108 = lshr i256 %r107, 224
%r109 = trunc i256 %r108 to i32
%r110 = trunc i256 %r107 to i224
%r111 = trunc i224 %r110 to i32
%r112 = mul i32 %r111, %r6
%r113 = call i256 @mulPv224x32(i32* %r3, i32 %r112)
%r114 = zext i32 %r109 to i256
%r115 = shl i256 %r114, 224
%r116 = add i256 %r113, %r115
%r118 = getelementptr i32, i32* %r2, i32 8
%r119 = load i32, i32* %r118
%r120 = zext i32 %r119 to i256
%r121 = shl i256 %r120, 224
%r122 = zext i224 %r110 to i256
%r123 = or i256 %r121, %r122
%r124 = zext i256 %r123 to i288
%r125 = zext i256 %r116 to i288
%r126 = add i288 %r124, %r125
%r127 = lshr i288 %r126, 32
%r128 = trunc i288 %r127 to i256
%r129 = lshr i256 %r128, 224
%r130 = trunc i256 %r129 to i32
%r131 = trunc i256 %r128 to i224
%r132 = trunc i224 %r131 to i32
%r133 = mul i32 %r132, %r6
%r134 = call i256 @mulPv224x32(i32* %r3, i32 %r133)
%r135 = zext i32 %r130 to i256
%r136 = shl i256 %r135, 224
%r137 = add i256 %r134, %r136
%r139 = getelementptr i32, i32* %r2, i32 9
%r140 = load i32, i32* %r139
%r141 = zext i32 %r140 to i256
%r142 = shl i256 %r141, 224
%r143 = zext i224 %r131 to i256
%r144 = or i256 %r142, %r143
%r145 = zext i256 %r144 to i288
%r146 = zext i256 %r137 to i288
%r147 = add i288 %r145, %r146
%r148 = lshr i288 %r147, 32
%r149 = trunc i288 %r148 to i256
%r150 = lshr i256 %r149, 224
%r151 = trunc i256 %r150 to i32
%r152 = trunc i256 %r149 to i224
%r153 = trunc i224 %r152 to i32
%r154 = mul i32 %r153, %r6
%r155 = call i256 @mulPv224x32(i32* %r3, i32 %r154)
%r156 = zext i32 %r151 to i256
%r157 = shl i256 %r156, 224
%r158 = add i256 %r155, %r157
%r160 = getelementptr i32, i32* %r2, i32 10
%r161 = load i32, i32* %r160
%r162 = zext i32 %r161 to i256
%r163 = shl i256 %r162, 224
%r164 = zext i224 %r152 to i256
%r165 = or i256 %r163, %r164
%r166 = zext i256 %r165 to i288
%r167 = zext i256 %r158 to i288
%r168 = add i288 %r166, %r167
%r169 = lshr i288 %r168, 32
%r170 = trunc i288 %r169 to i256
%r171 = lshr i256 %r170, 224
%r172 = trunc i256 %r171 to i32
%r173 = trunc i256 %r170 to i224
%r174 = trunc i224 %r173 to i32
%r175 = mul i32 %r174, %r6
%r176 = call i256 @mulPv224x32(i32* %r3, i32 %r175)
%r177 = zext i32 %r172 to i256
%r178 = shl i256 %r177, 224
%r179 = add i256 %r176, %r178
%r181 = getelementptr i32, i32* %r2, i32 11
%r182 = load i32, i32* %r181
%r183 = zext i32 %r182 to i256
%r184 = shl i256 %r183, 224
%r185 = zext i224 %r173 to i256
%r186 = or i256 %r184, %r185
%r187 = zext i256 %r186 to i288
%r188 = zext i256 %r179 to i288
%r189 = add i288 %r187, %r188
%r190 = lshr i288 %r189, 32
%r191 = trunc i288 %r190 to i256
%r192 = lshr i256 %r191, 224
%r193 = trunc i256 %r192 to i32
%r194 = trunc i256 %r191 to i224
%r195 = trunc i224 %r194 to i32
%r196 = mul i32 %r195, %r6
%r197 = call i256 @mulPv224x32(i32* %r3, i32 %r196)
%r198 = zext i32 %r193 to i256
%r199 = shl i256 %r198, 224
%r200 = add i256 %r197, %r199
%r202 = getelementptr i32, i32* %r2, i32 12
%r203 = load i32, i32* %r202
%r204 = zext i32 %r203 to i256
%r205 = shl i256 %r204, 224
%r206 = zext i224 %r194 to i256
%r207 = or i256 %r205, %r206
%r208 = zext i256 %r207 to i288
%r209 = zext i256 %r200 to i288
%r210 = add i288 %r208, %r209
%r211 = lshr i288 %r210, 32
%r212 = trunc i288 %r211 to i256
%r213 = lshr i256 %r212, 224
%r214 = trunc i256 %r213 to i32
%r215 = trunc i256 %r212 to i224
%r216 = trunc i224 %r215 to i32
%r217 = mul i32 %r216, %r6
%r218 = call i256 @mulPv224x32(i32* %r3, i32 %r217)
%r219 = zext i32 %r214 to i256
%r220 = shl i256 %r219, 224
%r221 = add i256 %r218, %r220
%r223 = getelementptr i32, i32* %r2, i32 13
%r224 = load i32, i32* %r223
%r225 = zext i32 %r224 to i256
%r226 = shl i256 %r225, 224
%r227 = zext i224 %r215 to i256
%r228 = or i256 %r226, %r227
%r229 = zext i256 %r228 to i288
%r230 = zext i256 %r221 to i288
%r231 = add i288 %r229, %r230
%r232 = lshr i288 %r231, 32
%r233 = trunc i288 %r232 to i256
%r234 = lshr i256 %r233, 224
%r235 = trunc i256 %r234 to i32
%r236 = trunc i256 %r233 to i224
%r237 = zext i224 %r49 to i256
%r238 = zext i32 %r235 to i256
%r239 = shl i256 %r238, 224
%r240 = zext i224 %r236 to i256
%r241 = or i256 %r239, %r240
%r242 = sub i256 %r241, %r237
%r243 = lshr i256 %r242, 224
%r244 = trunc i256 %r243 to i1
%r245 = select i1 %r244, i256 %r241, i256 %r242
%r246 = trunc i256 %r245 to i224
%r248 = getelementptr i32, i32* %r1, i32 0
%r249 = trunc i224 %r246 to i32
store i32 %r249, i32* %r248
%r250 = lshr i224 %r246, 32
%r252 = getelementptr i32, i32* %r1, i32 1
%r253 = trunc i224 %r250 to i32
store i32 %r253, i32* %r252
%r254 = lshr i224 %r250, 32
%r256 = getelementptr i32, i32* %r1, i32 2
%r257 = trunc i224 %r254 to i32
store i32 %r257, i32* %r256
%r258 = lshr i224 %r254, 32
%r260 = getelementptr i32, i32* %r1, i32 3
%r261 = trunc i224 %r258 to i32
store i32 %r261, i32* %r260
%r262 = lshr i224 %r258, 32
%r264 = getelementptr i32, i32* %r1, i32 4
%r265 = trunc i224 %r262 to i32
store i32 %r265, i32* %r264
%r266 = lshr i224 %r262, 32
%r268 = getelementptr i32, i32* %r1, i32 5
%r269 = trunc i224 %r266 to i32
store i32 %r269, i32* %r268
%r270 = lshr i224 %r266, 32
%r272 = getelementptr i32, i32* %r1, i32 6
%r273 = trunc i224 %r270 to i32
store i32 %r273, i32* %r272
ret void
}
define void @mcl_fp_montRedNF7L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3)
{
%r5 = getelementptr i32, i32* %r3, i32 -1
%r6 = load i32, i32* %r5
%r7 = load i32, i32* %r3
%r8 = zext i32 %r7 to i64
%r10 = getelementptr i32, i32* %r3, i32 1
%r11 = load i32, i32* %r10
%r12 = zext i32 %r11 to i64
%r13 = shl i64 %r12, 32
%r14 = or i64 %r8, %r13
%r15 = zext i64 %r14 to i96
%r17 = getelementptr i32, i32* %r3, i32 2
%r18 = load i32, i32* %r17
%r19 = zext i32 %r18 to i96
%r20 = shl i96 %r19, 64
%r21 = or i96 %r15, %r20
%r22 = zext i96 %r21 to i128
%r24 = getelementptr i32, i32* %r3, i32 3
%r25 = load i32, i32* %r24
%r26 = zext i32 %r25 to i128
%r27 = shl i128 %r26, 96
%r28 = or i128 %r22, %r27
%r29 = zext i128 %r28 to i160
%r31 = getelementptr i32, i32* %r3, i32 4
%r32 = load i32, i32* %r31
%r33 = zext i32 %r32 to i160
%r34 = shl i160 %r33, 128
%r35 = or i160 %r29, %r34
%r36 = zext i160 %r35 to i192
%r38 = getelementptr i32, i32* %r3, i32 5
%r39 = load i32, i32* %r38
%r40 = zext i32 %r39 to i192
%r41 = shl i192 %r40, 160
%r42 = or i192 %r36, %r41
%r43 = zext i192 %r42 to i224
%r45 = getelementptr i32, i32* %r3, i32 6
%r46 = load i32, i32* %r45
%r47 = zext i32 %r46 to i224
%r48 = shl i224 %r47, 192
%r49 = or i224 %r43, %r48
%r50 = load i32, i32* %r2
%r51 = zext i32 %r50 to i64
%r53 = getelementptr i32, i32* %r2, i32 1
%r54 = load i32, i32* %r53
%r55 = zext i32 %r54 to i64
%r56 = shl i64 %r55, 32
%r57 = or i64 %r51, %r56
%r58 = zext i64 %r57 to i96
%r60 = getelementptr i32, i32* %r2, i32 2
%r61 = load i32, i32* %r60
%r62 = zext i32 %r61 to i96
%r63 = shl i96 %r62, 64
%r64 = or i96 %r58, %r63
%r65 = zext i96 %r64 to i128
%r67 = getelementptr i32, i32* %r2, i32 3
%r68 = load i32, i32* %r67
%r69 = zext i32 %r68 to i128
%r70 = shl i128 %r69, 96
%r71 = or i128 %r65, %r70
%r72 = zext i128 %r71 to i160
%r74 = getelementptr i32, i32* %r2, i32 4
%r75 = load i32, i32* %r74
%r76 = zext i32 %r75 to i160
%r77 = shl i160 %r76, 128
%r78 = or i160 %r72, %r77
%r79 = zext i160 %r78 to i192
%r81 = getelementptr i32, i32* %r2, i32 5
%r82 = load i32, i32* %r81
%r83 = zext i32 %r82 to i192
%r84 = shl i192 %r83, 160
%r85 = or i192 %r79, %r84
%r86 = zext i192 %r85 to i224
%r88 = getelementptr i32, i32* %r2, i32 6
%r89 = load i32, i32* %r88
%r90 = zext i32 %r89 to i224
%r91 = shl i224 %r90, 192
%r92 = or i224 %r86, %r91
%r93 = trunc i224 %r92 to i32
%r94 = mul i32 %r93, %r6
%r95 = call i256 @mulPv224x32(i32* %r3, i32 %r94)
%r97 = getelementptr i32, i32* %r2, i32 7
%r98 = load i32, i32* %r97
%r99 = zext i32 %r98 to i256
%r100 = shl i256 %r99, 224
%r101 = zext i224 %r92 to i256
%r102 = or i256 %r100, %r101
%r103 = zext i256 %r102 to i288
%r104 = zext i256 %r95 to i288
%r105 = add i288 %r103, %r104
%r106 = lshr i288 %r105, 32
%r107 = trunc i288 %r106 to i256
%r108 = lshr i256 %r107, 224
%r109 = trunc i256 %r108 to i32
%r110 = trunc i256 %r107 to i224
%r111 = trunc i224 %r110 to i32
%r112 = mul i32 %r111, %r6
%r113 = call i256 @mulPv224x32(i32* %r3, i32 %r112)
%r114 = zext i32 %r109 to i256
%r115 = shl i256 %r114, 224
%r116 = add i256 %r113, %r115
%r118 = getelementptr i32, i32* %r2, i32 8
%r119 = load i32, i32* %r118
%r120 = zext i32 %r119 to i256
%r121 = shl i256 %r120, 224
%r122 = zext i224 %r110 to i256
%r123 = or i256 %r121, %r122
%r124 = zext i256 %r123 to i288
%r125 = zext i256 %r116 to i288
%r126 = add i288 %r124, %r125
%r127 = lshr i288 %r126, 32
%r128 = trunc i288 %r127 to i256
%r129 = lshr i256 %r128, 224
%r130 = trunc i256 %r129 to i32
%r131 = trunc i256 %r128 to i224
%r132 = trunc i224 %r131 to i32
%r133 = mul i32 %r132, %r6
%r134 = call i256 @mulPv224x32(i32* %r3, i32 %r133)
%r135 = zext i32 %r130 to i256
%r136 = shl i256 %r135, 224
%r137 = add i256 %r134, %r136
%r139 = getelementptr i32, i32* %r2, i32 9
%r140 = load i32, i32* %r139
%r141 = zext i32 %r140 to i256
%r142 = shl i256 %r141, 224
%r143 = zext i224 %r131 to i256
%r144 = or i256 %r142, %r143
%r145 = zext i256 %r144 to i288
%r146 = zext i256 %r137 to i288
%r147 = add i288 %r145, %r146
%r148 = lshr i288 %r147, 32
%r149 = trunc i288 %r148 to i256
%r150 = lshr i256 %r149, 224
%r151 = trunc i256 %r150 to i32
%r152 = trunc i256 %r149 to i224
%r153 = trunc i224 %r152 to i32
%r154 = mul i32 %r153, %r6
%r155 = call i256 @mulPv224x32(i32* %r3, i32 %r154)
%r156 = zext i32 %r151 to i256
%r157 = shl i256 %r156, 224
%r158 = add i256 %r155, %r157
%r160 = getelementptr i32, i32* %r2, i32 10
%r161 = load i32, i32* %r160
%r162 = zext i32 %r161 to i256
%r163 = shl i256 %r162, 224
%r164 = zext i224 %r152 to i256
%r165 = or i256 %r163, %r164
%r166 = zext i256 %r165 to i288
%r167 = zext i256 %r158 to i288
%r168 = add i288 %r166, %r167
%r169 = lshr i288 %r168, 32
%r170 = trunc i288 %r169 to i256
%r171 = lshr i256 %r170, 224
%r172 = trunc i256 %r171 to i32
%r173 = trunc i256 %r170 to i224
%r174 = trunc i224 %r173 to i32
%r175 = mul i32 %r174, %r6
%r176 = call i256 @mulPv224x32(i32* %r3, i32 %r175)
%r177 = zext i32 %r172 to i256
%r178 = shl i256 %r177, 224
%r179 = add i256 %r176, %r178
%r181 = getelementptr i32, i32* %r2, i32 11
%r182 = load i32, i32* %r181
%r183 = zext i32 %r182 to i256
%r184 = shl i256 %r183, 224
%r185 = zext i224 %r173 to i256
%r186 = or i256 %r184, %r185
%r187 = zext i256 %r186 to i288
%r188 = zext i256 %r179 to i288
%r189 = add i288 %r187, %r188
%r190 = lshr i288 %r189, 32
%r191 = trunc i288 %r190 to i256
%r192 = lshr i256 %r191, 224
%r193 = trunc i256 %r192 to i32
%r194 = trunc i256 %r191 to i224
%r195 = trunc i224 %r194 to i32
%r196 = mul i32 %r195, %r6
%r197 = call i256 @mulPv224x32(i32* %r3, i32 %r196)
%r198 = zext i32 %r193 to i256
%r199 = shl i256 %r198, 224
%r200 = add i256 %r197, %r199
%r202 = getelementptr i32, i32* %r2, i32 12
%r203 = load i32, i32* %r202
%r204 = zext i32 %r203 to i256
%r205 = shl i256 %r204, 224
%r206 = zext i224 %r194 to i256
%r207 = or i256 %r205, %r206
%r208 = zext i256 %r207 to i288
%r209 = zext i256 %r200 to i288
%r210 = add i288 %r208, %r209
%r211 = lshr i288 %r210, 32
%r212 = trunc i288 %r211 to i256
%r213 = lshr i256 %r212, 224
%r214 = trunc i256 %r213 to i32
%r215 = trunc i256 %r212 to i224
%r216 = trunc i224 %r215 to i32
%r217 = mul i32 %r216, %r6
%r218 = call i256 @mulPv224x32(i32* %r3, i32 %r217)
%r219 = zext i32 %r214 to i256
%r220 = shl i256 %r219, 224
%r221 = add i256 %r218, %r220
%r223 = getelementptr i32, i32* %r2, i32 13
%r224 = load i32, i32* %r223
%r225 = zext i32 %r224 to i256
%r226 = shl i256 %r225, 224
%r227 = zext i224 %r215 to i256
%r228 = or i256 %r226, %r227
%r229 = zext i256 %r228 to i288
%r230 = zext i256 %r221 to i288
%r231 = add i288 %r229, %r230
%r232 = lshr i288 %r231, 32
%r233 = trunc i288 %r232 to i256
%r234 = lshr i256 %r233, 224
%r235 = trunc i256 %r234 to i32
%r236 = trunc i256 %r233 to i224
%r237 = sub i224 %r236, %r49
%r238 = lshr i224 %r237, 223
%r239 = trunc i224 %r238 to i1
%r240 = select i1 %r239, i224 %r236, i224 %r237
%r242 = getelementptr i32, i32* %r1, i32 0
%r243 = trunc i224 %r240 to i32
store i32 %r243, i32* %r242
%r244 = lshr i224 %r240, 32
%r246 = getelementptr i32, i32* %r1, i32 1
%r247 = trunc i224 %r244 to i32
store i32 %r247, i32* %r246
%r248 = lshr i224 %r244, 32
%r250 = getelementptr i32, i32* %r1, i32 2
%r251 = trunc i224 %r248 to i32
store i32 %r251, i32* %r250
%r252 = lshr i224 %r248, 32
%r254 = getelementptr i32, i32* %r1, i32 3
%r255 = trunc i224 %r252 to i32
store i32 %r255, i32* %r254
%r256 = lshr i224 %r252, 32
%r258 = getelementptr i32, i32* %r1, i32 4
%r259 = trunc i224 %r256 to i32
store i32 %r259, i32* %r258
%r260 = lshr i224 %r256, 32
%r262 = getelementptr i32, i32* %r1, i32 5
%r263 = trunc i224 %r260 to i32
store i32 %r263, i32* %r262
%r264 = lshr i224 %r260, 32
%r266 = getelementptr i32, i32* %r1, i32 6
%r267 = trunc i224 %r264 to i32
store i32 %r267, i32* %r266
ret void
}
define i32 @mcl_fp_addPre7L(i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r3
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r3, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r3, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r3, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r3, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r3, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r3, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r49 = load i32, i32* %r4
%r50 = zext i32 %r49 to i64
%r52 = getelementptr i32, i32* %r4, i32 1
%r53 = load i32, i32* %r52
%r54 = zext i32 %r53 to i64
%r55 = shl i64 %r54, 32
%r56 = or i64 %r50, %r55
%r57 = zext i64 %r56 to i96
%r59 = getelementptr i32, i32* %r4, i32 2
%r60 = load i32, i32* %r59
%r61 = zext i32 %r60 to i96
%r62 = shl i96 %r61, 64
%r63 = or i96 %r57, %r62
%r64 = zext i96 %r63 to i128
%r66 = getelementptr i32, i32* %r4, i32 3
%r67 = load i32, i32* %r66
%r68 = zext i32 %r67 to i128
%r69 = shl i128 %r68, 96
%r70 = or i128 %r64, %r69
%r71 = zext i128 %r70 to i160
%r73 = getelementptr i32, i32* %r4, i32 4
%r74 = load i32, i32* %r73
%r75 = zext i32 %r74 to i160
%r76 = shl i160 %r75, 128
%r77 = or i160 %r71, %r76
%r78 = zext i160 %r77 to i192
%r80 = getelementptr i32, i32* %r4, i32 5
%r81 = load i32, i32* %r80
%r82 = zext i32 %r81 to i192
%r83 = shl i192 %r82, 160
%r84 = or i192 %r78, %r83
%r85 = zext i192 %r84 to i224
%r87 = getelementptr i32, i32* %r4, i32 6
%r88 = load i32, i32* %r87
%r89 = zext i32 %r88 to i224
%r90 = shl i224 %r89, 192
%r91 = or i224 %r85, %r90
%r92 = zext i224 %r91 to i256
%r93 = add i256 %r48, %r92
%r94 = trunc i256 %r93 to i224
%r96 = getelementptr i32, i32* %r2, i32 0
%r97 = trunc i224 %r94 to i32
store i32 %r97, i32* %r96
%r98 = lshr i224 %r94, 32
%r100 = getelementptr i32, i32* %r2, i32 1
%r101 = trunc i224 %r98 to i32
store i32 %r101, i32* %r100
%r102 = lshr i224 %r98, 32
%r104 = getelementptr i32, i32* %r2, i32 2
%r105 = trunc i224 %r102 to i32
store i32 %r105, i32* %r104
%r106 = lshr i224 %r102, 32
%r108 = getelementptr i32, i32* %r2, i32 3
%r109 = trunc i224 %r106 to i32
store i32 %r109, i32* %r108
%r110 = lshr i224 %r106, 32
%r112 = getelementptr i32, i32* %r2, i32 4
%r113 = trunc i224 %r110 to i32
store i32 %r113, i32* %r112
%r114 = lshr i224 %r110, 32
%r116 = getelementptr i32, i32* %r2, i32 5
%r117 = trunc i224 %r114 to i32
store i32 %r117, i32* %r116
%r118 = lshr i224 %r114, 32
%r120 = getelementptr i32, i32* %r2, i32 6
%r121 = trunc i224 %r118 to i32
store i32 %r121, i32* %r120
%r122 = lshr i256 %r93, 224
%r123 = trunc i256 %r122 to i32
ret i32 %r123
}
define i32 @mcl_fp_subPre7L(i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r3
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r3, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r3, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r3, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r3, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r3, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r3, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r49 = load i32, i32* %r4
%r50 = zext i32 %r49 to i64
%r52 = getelementptr i32, i32* %r4, i32 1
%r53 = load i32, i32* %r52
%r54 = zext i32 %r53 to i64
%r55 = shl i64 %r54, 32
%r56 = or i64 %r50, %r55
%r57 = zext i64 %r56 to i96
%r59 = getelementptr i32, i32* %r4, i32 2
%r60 = load i32, i32* %r59
%r61 = zext i32 %r60 to i96
%r62 = shl i96 %r61, 64
%r63 = or i96 %r57, %r62
%r64 = zext i96 %r63 to i128
%r66 = getelementptr i32, i32* %r4, i32 3
%r67 = load i32, i32* %r66
%r68 = zext i32 %r67 to i128
%r69 = shl i128 %r68, 96
%r70 = or i128 %r64, %r69
%r71 = zext i128 %r70 to i160
%r73 = getelementptr i32, i32* %r4, i32 4
%r74 = load i32, i32* %r73
%r75 = zext i32 %r74 to i160
%r76 = shl i160 %r75, 128
%r77 = or i160 %r71, %r76
%r78 = zext i160 %r77 to i192
%r80 = getelementptr i32, i32* %r4, i32 5
%r81 = load i32, i32* %r80
%r82 = zext i32 %r81 to i192
%r83 = shl i192 %r82, 160
%r84 = or i192 %r78, %r83
%r85 = zext i192 %r84 to i224
%r87 = getelementptr i32, i32* %r4, i32 6
%r88 = load i32, i32* %r87
%r89 = zext i32 %r88 to i224
%r90 = shl i224 %r89, 192
%r91 = or i224 %r85, %r90
%r92 = zext i224 %r91 to i256
%r93 = sub i256 %r48, %r92
%r94 = trunc i256 %r93 to i224
%r96 = getelementptr i32, i32* %r2, i32 0
%r97 = trunc i224 %r94 to i32
store i32 %r97, i32* %r96
%r98 = lshr i224 %r94, 32
%r100 = getelementptr i32, i32* %r2, i32 1
%r101 = trunc i224 %r98 to i32
store i32 %r101, i32* %r100
%r102 = lshr i224 %r98, 32
%r104 = getelementptr i32, i32* %r2, i32 2
%r105 = trunc i224 %r102 to i32
store i32 %r105, i32* %r104
%r106 = lshr i224 %r102, 32
%r108 = getelementptr i32, i32* %r2, i32 3
%r109 = trunc i224 %r106 to i32
store i32 %r109, i32* %r108
%r110 = lshr i224 %r106, 32
%r112 = getelementptr i32, i32* %r2, i32 4
%r113 = trunc i224 %r110 to i32
store i32 %r113, i32* %r112
%r114 = lshr i224 %r110, 32
%r116 = getelementptr i32, i32* %r2, i32 5
%r117 = trunc i224 %r114 to i32
store i32 %r117, i32* %r116
%r118 = lshr i224 %r114, 32
%r120 = getelementptr i32, i32* %r2, i32 6
%r121 = trunc i224 %r118 to i32
store i32 %r121, i32* %r120
%r123 = lshr i256 %r93, 224
%r124 = trunc i256 %r123 to i32
%r125 = and i32 %r124, 1
ret i32 %r125
}
define void @mcl_fp_shr1_7L(i32* noalias  %r1, i32* noalias  %r2)
{
%r3 = load i32, i32* %r2
%r4 = zext i32 %r3 to i64
%r6 = getelementptr i32, i32* %r2, i32 1
%r7 = load i32, i32* %r6
%r8 = zext i32 %r7 to i64
%r9 = shl i64 %r8, 32
%r10 = or i64 %r4, %r9
%r11 = zext i64 %r10 to i96
%r13 = getelementptr i32, i32* %r2, i32 2
%r14 = load i32, i32* %r13
%r15 = zext i32 %r14 to i96
%r16 = shl i96 %r15, 64
%r17 = or i96 %r11, %r16
%r18 = zext i96 %r17 to i128
%r20 = getelementptr i32, i32* %r2, i32 3
%r21 = load i32, i32* %r20
%r22 = zext i32 %r21 to i128
%r23 = shl i128 %r22, 96
%r24 = or i128 %r18, %r23
%r25 = zext i128 %r24 to i160
%r27 = getelementptr i32, i32* %r2, i32 4
%r28 = load i32, i32* %r27
%r29 = zext i32 %r28 to i160
%r30 = shl i160 %r29, 128
%r31 = or i160 %r25, %r30
%r32 = zext i160 %r31 to i192
%r34 = getelementptr i32, i32* %r2, i32 5
%r35 = load i32, i32* %r34
%r36 = zext i32 %r35 to i192
%r37 = shl i192 %r36, 160
%r38 = or i192 %r32, %r37
%r39 = zext i192 %r38 to i224
%r41 = getelementptr i32, i32* %r2, i32 6
%r42 = load i32, i32* %r41
%r43 = zext i32 %r42 to i224
%r44 = shl i224 %r43, 192
%r45 = or i224 %r39, %r44
%r46 = lshr i224 %r45, 1
%r48 = getelementptr i32, i32* %r1, i32 0
%r49 = trunc i224 %r46 to i32
store i32 %r49, i32* %r48
%r50 = lshr i224 %r46, 32
%r52 = getelementptr i32, i32* %r1, i32 1
%r53 = trunc i224 %r50 to i32
store i32 %r53, i32* %r52
%r54 = lshr i224 %r50, 32
%r56 = getelementptr i32, i32* %r1, i32 2
%r57 = trunc i224 %r54 to i32
store i32 %r57, i32* %r56
%r58 = lshr i224 %r54, 32
%r60 = getelementptr i32, i32* %r1, i32 3
%r61 = trunc i224 %r58 to i32
store i32 %r61, i32* %r60
%r62 = lshr i224 %r58, 32
%r64 = getelementptr i32, i32* %r1, i32 4
%r65 = trunc i224 %r62 to i32
store i32 %r65, i32* %r64
%r66 = lshr i224 %r62, 32
%r68 = getelementptr i32, i32* %r1, i32 5
%r69 = trunc i224 %r66 to i32
store i32 %r69, i32* %r68
%r70 = lshr i224 %r66, 32
%r72 = getelementptr i32, i32* %r1, i32 6
%r73 = trunc i224 %r70 to i32
store i32 %r73, i32* %r72
ret void
}
define void @mcl_fp_add7L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = load i32, i32* %r3
%r49 = zext i32 %r48 to i64
%r51 = getelementptr i32, i32* %r3, i32 1
%r52 = load i32, i32* %r51
%r53 = zext i32 %r52 to i64
%r54 = shl i64 %r53, 32
%r55 = or i64 %r49, %r54
%r56 = zext i64 %r55 to i96
%r58 = getelementptr i32, i32* %r3, i32 2
%r59 = load i32, i32* %r58
%r60 = zext i32 %r59 to i96
%r61 = shl i96 %r60, 64
%r62 = or i96 %r56, %r61
%r63 = zext i96 %r62 to i128
%r65 = getelementptr i32, i32* %r3, i32 3
%r66 = load i32, i32* %r65
%r67 = zext i32 %r66 to i128
%r68 = shl i128 %r67, 96
%r69 = or i128 %r63, %r68
%r70 = zext i128 %r69 to i160
%r72 = getelementptr i32, i32* %r3, i32 4
%r73 = load i32, i32* %r72
%r74 = zext i32 %r73 to i160
%r75 = shl i160 %r74, 128
%r76 = or i160 %r70, %r75
%r77 = zext i160 %r76 to i192
%r79 = getelementptr i32, i32* %r3, i32 5
%r80 = load i32, i32* %r79
%r81 = zext i32 %r80 to i192
%r82 = shl i192 %r81, 160
%r83 = or i192 %r77, %r82
%r84 = zext i192 %r83 to i224
%r86 = getelementptr i32, i32* %r3, i32 6
%r87 = load i32, i32* %r86
%r88 = zext i32 %r87 to i224
%r89 = shl i224 %r88, 192
%r90 = or i224 %r84, %r89
%r91 = zext i224 %r47 to i256
%r92 = zext i224 %r90 to i256
%r93 = add i256 %r91, %r92
%r94 = load i32, i32* %r4
%r95 = zext i32 %r94 to i64
%r97 = getelementptr i32, i32* %r4, i32 1
%r98 = load i32, i32* %r97
%r99 = zext i32 %r98 to i64
%r100 = shl i64 %r99, 32
%r101 = or i64 %r95, %r100
%r102 = zext i64 %r101 to i96
%r104 = getelementptr i32, i32* %r4, i32 2
%r105 = load i32, i32* %r104
%r106 = zext i32 %r105 to i96
%r107 = shl i96 %r106, 64
%r108 = or i96 %r102, %r107
%r109 = zext i96 %r108 to i128
%r111 = getelementptr i32, i32* %r4, i32 3
%r112 = load i32, i32* %r111
%r113 = zext i32 %r112 to i128
%r114 = shl i128 %r113, 96
%r115 = or i128 %r109, %r114
%r116 = zext i128 %r115 to i160
%r118 = getelementptr i32, i32* %r4, i32 4
%r119 = load i32, i32* %r118
%r120 = zext i32 %r119 to i160
%r121 = shl i160 %r120, 128
%r122 = or i160 %r116, %r121
%r123 = zext i160 %r122 to i192
%r125 = getelementptr i32, i32* %r4, i32 5
%r126 = load i32, i32* %r125
%r127 = zext i32 %r126 to i192
%r128 = shl i192 %r127, 160
%r129 = or i192 %r123, %r128
%r130 = zext i192 %r129 to i224
%r132 = getelementptr i32, i32* %r4, i32 6
%r133 = load i32, i32* %r132
%r134 = zext i32 %r133 to i224
%r135 = shl i224 %r134, 192
%r136 = or i224 %r130, %r135
%r137 = zext i224 %r136 to i256
%r138 = sub i256 %r93, %r137
%r139 = lshr i256 %r138, 224
%r140 = trunc i256 %r139 to i1
%r141 = select i1 %r140, i256 %r93, i256 %r138
%r142 = trunc i256 %r141 to i224
%r144 = getelementptr i32, i32* %r1, i32 0
%r145 = trunc i224 %r142 to i32
store i32 %r145, i32* %r144
%r146 = lshr i224 %r142, 32
%r148 = getelementptr i32, i32* %r1, i32 1
%r149 = trunc i224 %r146 to i32
store i32 %r149, i32* %r148
%r150 = lshr i224 %r146, 32
%r152 = getelementptr i32, i32* %r1, i32 2
%r153 = trunc i224 %r150 to i32
store i32 %r153, i32* %r152
%r154 = lshr i224 %r150, 32
%r156 = getelementptr i32, i32* %r1, i32 3
%r157 = trunc i224 %r154 to i32
store i32 %r157, i32* %r156
%r158 = lshr i224 %r154, 32
%r160 = getelementptr i32, i32* %r1, i32 4
%r161 = trunc i224 %r158 to i32
store i32 %r161, i32* %r160
%r162 = lshr i224 %r158, 32
%r164 = getelementptr i32, i32* %r1, i32 5
%r165 = trunc i224 %r162 to i32
store i32 %r165, i32* %r164
%r166 = lshr i224 %r162, 32
%r168 = getelementptr i32, i32* %r1, i32 6
%r169 = trunc i224 %r166 to i32
store i32 %r169, i32* %r168
ret void
}
define void @mcl_fp_addNF7L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = load i32, i32* %r3
%r49 = zext i32 %r48 to i64
%r51 = getelementptr i32, i32* %r3, i32 1
%r52 = load i32, i32* %r51
%r53 = zext i32 %r52 to i64
%r54 = shl i64 %r53, 32
%r55 = or i64 %r49, %r54
%r56 = zext i64 %r55 to i96
%r58 = getelementptr i32, i32* %r3, i32 2
%r59 = load i32, i32* %r58
%r60 = zext i32 %r59 to i96
%r61 = shl i96 %r60, 64
%r62 = or i96 %r56, %r61
%r63 = zext i96 %r62 to i128
%r65 = getelementptr i32, i32* %r3, i32 3
%r66 = load i32, i32* %r65
%r67 = zext i32 %r66 to i128
%r68 = shl i128 %r67, 96
%r69 = or i128 %r63, %r68
%r70 = zext i128 %r69 to i160
%r72 = getelementptr i32, i32* %r3, i32 4
%r73 = load i32, i32* %r72
%r74 = zext i32 %r73 to i160
%r75 = shl i160 %r74, 128
%r76 = or i160 %r70, %r75
%r77 = zext i160 %r76 to i192
%r79 = getelementptr i32, i32* %r3, i32 5
%r80 = load i32, i32* %r79
%r81 = zext i32 %r80 to i192
%r82 = shl i192 %r81, 160
%r83 = or i192 %r77, %r82
%r84 = zext i192 %r83 to i224
%r86 = getelementptr i32, i32* %r3, i32 6
%r87 = load i32, i32* %r86
%r88 = zext i32 %r87 to i224
%r89 = shl i224 %r88, 192
%r90 = or i224 %r84, %r89
%r91 = add i224 %r47, %r90
%r92 = load i32, i32* %r4
%r93 = zext i32 %r92 to i64
%r95 = getelementptr i32, i32* %r4, i32 1
%r96 = load i32, i32* %r95
%r97 = zext i32 %r96 to i64
%r98 = shl i64 %r97, 32
%r99 = or i64 %r93, %r98
%r100 = zext i64 %r99 to i96
%r102 = getelementptr i32, i32* %r4, i32 2
%r103 = load i32, i32* %r102
%r104 = zext i32 %r103 to i96
%r105 = shl i96 %r104, 64
%r106 = or i96 %r100, %r105
%r107 = zext i96 %r106 to i128
%r109 = getelementptr i32, i32* %r4, i32 3
%r110 = load i32, i32* %r109
%r111 = zext i32 %r110 to i128
%r112 = shl i128 %r111, 96
%r113 = or i128 %r107, %r112
%r114 = zext i128 %r113 to i160
%r116 = getelementptr i32, i32* %r4, i32 4
%r117 = load i32, i32* %r116
%r118 = zext i32 %r117 to i160
%r119 = shl i160 %r118, 128
%r120 = or i160 %r114, %r119
%r121 = zext i160 %r120 to i192
%r123 = getelementptr i32, i32* %r4, i32 5
%r124 = load i32, i32* %r123
%r125 = zext i32 %r124 to i192
%r126 = shl i192 %r125, 160
%r127 = or i192 %r121, %r126
%r128 = zext i192 %r127 to i224
%r130 = getelementptr i32, i32* %r4, i32 6
%r131 = load i32, i32* %r130
%r132 = zext i32 %r131 to i224
%r133 = shl i224 %r132, 192
%r134 = or i224 %r128, %r133
%r135 = sub i224 %r91, %r134
%r136 = lshr i224 %r135, 223
%r137 = trunc i224 %r136 to i1
%r138 = select i1 %r137, i224 %r91, i224 %r135
%r140 = getelementptr i32, i32* %r1, i32 0
%r141 = trunc i224 %r138 to i32
store i32 %r141, i32* %r140
%r142 = lshr i224 %r138, 32
%r144 = getelementptr i32, i32* %r1, i32 1
%r145 = trunc i224 %r142 to i32
store i32 %r145, i32* %r144
%r146 = lshr i224 %r142, 32
%r148 = getelementptr i32, i32* %r1, i32 2
%r149 = trunc i224 %r146 to i32
store i32 %r149, i32* %r148
%r150 = lshr i224 %r146, 32
%r152 = getelementptr i32, i32* %r1, i32 3
%r153 = trunc i224 %r150 to i32
store i32 %r153, i32* %r152
%r154 = lshr i224 %r150, 32
%r156 = getelementptr i32, i32* %r1, i32 4
%r157 = trunc i224 %r154 to i32
store i32 %r157, i32* %r156
%r158 = lshr i224 %r154, 32
%r160 = getelementptr i32, i32* %r1, i32 5
%r161 = trunc i224 %r158 to i32
store i32 %r161, i32* %r160
%r162 = lshr i224 %r158, 32
%r164 = getelementptr i32, i32* %r1, i32 6
%r165 = trunc i224 %r162 to i32
store i32 %r165, i32* %r164
ret void
}
define void @mcl_fp_sub7L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = load i32, i32* %r3
%r49 = zext i32 %r48 to i64
%r51 = getelementptr i32, i32* %r3, i32 1
%r52 = load i32, i32* %r51
%r53 = zext i32 %r52 to i64
%r54 = shl i64 %r53, 32
%r55 = or i64 %r49, %r54
%r56 = zext i64 %r55 to i96
%r58 = getelementptr i32, i32* %r3, i32 2
%r59 = load i32, i32* %r58
%r60 = zext i32 %r59 to i96
%r61 = shl i96 %r60, 64
%r62 = or i96 %r56, %r61
%r63 = zext i96 %r62 to i128
%r65 = getelementptr i32, i32* %r3, i32 3
%r66 = load i32, i32* %r65
%r67 = zext i32 %r66 to i128
%r68 = shl i128 %r67, 96
%r69 = or i128 %r63, %r68
%r70 = zext i128 %r69 to i160
%r72 = getelementptr i32, i32* %r3, i32 4
%r73 = load i32, i32* %r72
%r74 = zext i32 %r73 to i160
%r75 = shl i160 %r74, 128
%r76 = or i160 %r70, %r75
%r77 = zext i160 %r76 to i192
%r79 = getelementptr i32, i32* %r3, i32 5
%r80 = load i32, i32* %r79
%r81 = zext i32 %r80 to i192
%r82 = shl i192 %r81, 160
%r83 = or i192 %r77, %r82
%r84 = zext i192 %r83 to i224
%r86 = getelementptr i32, i32* %r3, i32 6
%r87 = load i32, i32* %r86
%r88 = zext i32 %r87 to i224
%r89 = shl i224 %r88, 192
%r90 = or i224 %r84, %r89
%r91 = zext i224 %r47 to i225
%r92 = zext i224 %r90 to i225
%r93 = sub i225 %r91, %r92
%r94 = lshr i225 %r93, 224
%r95 = trunc i225 %r94 to i1
%r96 = trunc i225 %r93 to i224
%r97 = load i32, i32* %r4
%r98 = zext i32 %r97 to i64
%r100 = getelementptr i32, i32* %r4, i32 1
%r101 = load i32, i32* %r100
%r102 = zext i32 %r101 to i64
%r103 = shl i64 %r102, 32
%r104 = or i64 %r98, %r103
%r105 = zext i64 %r104 to i96
%r107 = getelementptr i32, i32* %r4, i32 2
%r108 = load i32, i32* %r107
%r109 = zext i32 %r108 to i96
%r110 = shl i96 %r109, 64
%r111 = or i96 %r105, %r110
%r112 = zext i96 %r111 to i128
%r114 = getelementptr i32, i32* %r4, i32 3
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i128
%r117 = shl i128 %r116, 96
%r118 = or i128 %r112, %r117
%r119 = zext i128 %r118 to i160
%r121 = getelementptr i32, i32* %r4, i32 4
%r122 = load i32, i32* %r121
%r123 = zext i32 %r122 to i160
%r124 = shl i160 %r123, 128
%r125 = or i160 %r119, %r124
%r126 = zext i160 %r125 to i192
%r128 = getelementptr i32, i32* %r4, i32 5
%r129 = load i32, i32* %r128
%r130 = zext i32 %r129 to i192
%r131 = shl i192 %r130, 160
%r132 = or i192 %r126, %r131
%r133 = zext i192 %r132 to i224
%r135 = getelementptr i32, i32* %r4, i32 6
%r136 = load i32, i32* %r135
%r137 = zext i32 %r136 to i224
%r138 = shl i224 %r137, 192
%r139 = or i224 %r133, %r138
%r141 = select i1 %r95, i224 %r139, i224 0
%r142 = add i224 %r96, %r141
%r144 = getelementptr i32, i32* %r1, i32 0
%r145 = trunc i224 %r142 to i32
store i32 %r145, i32* %r144
%r146 = lshr i224 %r142, 32
%r148 = getelementptr i32, i32* %r1, i32 1
%r149 = trunc i224 %r146 to i32
store i32 %r149, i32* %r148
%r150 = lshr i224 %r146, 32
%r152 = getelementptr i32, i32* %r1, i32 2
%r153 = trunc i224 %r150 to i32
store i32 %r153, i32* %r152
%r154 = lshr i224 %r150, 32
%r156 = getelementptr i32, i32* %r1, i32 3
%r157 = trunc i224 %r154 to i32
store i32 %r157, i32* %r156
%r158 = lshr i224 %r154, 32
%r160 = getelementptr i32, i32* %r1, i32 4
%r161 = trunc i224 %r158 to i32
store i32 %r161, i32* %r160
%r162 = lshr i224 %r158, 32
%r164 = getelementptr i32, i32* %r1, i32 5
%r165 = trunc i224 %r162 to i32
store i32 %r165, i32* %r164
%r166 = lshr i224 %r162, 32
%r168 = getelementptr i32, i32* %r1, i32 6
%r169 = trunc i224 %r166 to i32
store i32 %r169, i32* %r168
ret void
}
define void @mcl_fp_subNF7L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = load i32, i32* %r3
%r49 = zext i32 %r48 to i64
%r51 = getelementptr i32, i32* %r3, i32 1
%r52 = load i32, i32* %r51
%r53 = zext i32 %r52 to i64
%r54 = shl i64 %r53, 32
%r55 = or i64 %r49, %r54
%r56 = zext i64 %r55 to i96
%r58 = getelementptr i32, i32* %r3, i32 2
%r59 = load i32, i32* %r58
%r60 = zext i32 %r59 to i96
%r61 = shl i96 %r60, 64
%r62 = or i96 %r56, %r61
%r63 = zext i96 %r62 to i128
%r65 = getelementptr i32, i32* %r3, i32 3
%r66 = load i32, i32* %r65
%r67 = zext i32 %r66 to i128
%r68 = shl i128 %r67, 96
%r69 = or i128 %r63, %r68
%r70 = zext i128 %r69 to i160
%r72 = getelementptr i32, i32* %r3, i32 4
%r73 = load i32, i32* %r72
%r74 = zext i32 %r73 to i160
%r75 = shl i160 %r74, 128
%r76 = or i160 %r70, %r75
%r77 = zext i160 %r76 to i192
%r79 = getelementptr i32, i32* %r3, i32 5
%r80 = load i32, i32* %r79
%r81 = zext i32 %r80 to i192
%r82 = shl i192 %r81, 160
%r83 = or i192 %r77, %r82
%r84 = zext i192 %r83 to i224
%r86 = getelementptr i32, i32* %r3, i32 6
%r87 = load i32, i32* %r86
%r88 = zext i32 %r87 to i224
%r89 = shl i224 %r88, 192
%r90 = or i224 %r84, %r89
%r91 = sub i224 %r47, %r90
%r92 = lshr i224 %r91, 223
%r93 = trunc i224 %r92 to i1
%r94 = load i32, i32* %r4
%r95 = zext i32 %r94 to i64
%r97 = getelementptr i32, i32* %r4, i32 1
%r98 = load i32, i32* %r97
%r99 = zext i32 %r98 to i64
%r100 = shl i64 %r99, 32
%r101 = or i64 %r95, %r100
%r102 = zext i64 %r101 to i96
%r104 = getelementptr i32, i32* %r4, i32 2
%r105 = load i32, i32* %r104
%r106 = zext i32 %r105 to i96
%r107 = shl i96 %r106, 64
%r108 = or i96 %r102, %r107
%r109 = zext i96 %r108 to i128
%r111 = getelementptr i32, i32* %r4, i32 3
%r112 = load i32, i32* %r111
%r113 = zext i32 %r112 to i128
%r114 = shl i128 %r113, 96
%r115 = or i128 %r109, %r114
%r116 = zext i128 %r115 to i160
%r118 = getelementptr i32, i32* %r4, i32 4
%r119 = load i32, i32* %r118
%r120 = zext i32 %r119 to i160
%r121 = shl i160 %r120, 128
%r122 = or i160 %r116, %r121
%r123 = zext i160 %r122 to i192
%r125 = getelementptr i32, i32* %r4, i32 5
%r126 = load i32, i32* %r125
%r127 = zext i32 %r126 to i192
%r128 = shl i192 %r127, 160
%r129 = or i192 %r123, %r128
%r130 = zext i192 %r129 to i224
%r132 = getelementptr i32, i32* %r4, i32 6
%r133 = load i32, i32* %r132
%r134 = zext i32 %r133 to i224
%r135 = shl i224 %r134, 192
%r136 = or i224 %r130, %r135
%r138 = select i1 %r93, i224 %r136, i224 0
%r139 = add i224 %r91, %r138
%r141 = getelementptr i32, i32* %r1, i32 0
%r142 = trunc i224 %r139 to i32
store i32 %r142, i32* %r141
%r143 = lshr i224 %r139, 32
%r145 = getelementptr i32, i32* %r1, i32 1
%r146 = trunc i224 %r143 to i32
store i32 %r146, i32* %r145
%r147 = lshr i224 %r143, 32
%r149 = getelementptr i32, i32* %r1, i32 2
%r150 = trunc i224 %r147 to i32
store i32 %r150, i32* %r149
%r151 = lshr i224 %r147, 32
%r153 = getelementptr i32, i32* %r1, i32 3
%r154 = trunc i224 %r151 to i32
store i32 %r154, i32* %r153
%r155 = lshr i224 %r151, 32
%r157 = getelementptr i32, i32* %r1, i32 4
%r158 = trunc i224 %r155 to i32
store i32 %r158, i32* %r157
%r159 = lshr i224 %r155, 32
%r161 = getelementptr i32, i32* %r1, i32 5
%r162 = trunc i224 %r159 to i32
store i32 %r162, i32* %r161
%r163 = lshr i224 %r159, 32
%r165 = getelementptr i32, i32* %r1, i32 6
%r166 = trunc i224 %r163 to i32
store i32 %r166, i32* %r165
ret void
}
define void @mcl_fpDbl_add7L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r2, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r2, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r2, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r2, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = zext i384 %r82 to i416
%r85 = getelementptr i32, i32* %r2, i32 12
%r86 = load i32, i32* %r85
%r87 = zext i32 %r86 to i416
%r88 = shl i416 %r87, 384
%r89 = or i416 %r83, %r88
%r90 = zext i416 %r89 to i448
%r92 = getelementptr i32, i32* %r2, i32 13
%r93 = load i32, i32* %r92
%r94 = zext i32 %r93 to i448
%r95 = shl i448 %r94, 416
%r96 = or i448 %r90, %r95
%r97 = load i32, i32* %r3
%r98 = zext i32 %r97 to i64
%r100 = getelementptr i32, i32* %r3, i32 1
%r101 = load i32, i32* %r100
%r102 = zext i32 %r101 to i64
%r103 = shl i64 %r102, 32
%r104 = or i64 %r98, %r103
%r105 = zext i64 %r104 to i96
%r107 = getelementptr i32, i32* %r3, i32 2
%r108 = load i32, i32* %r107
%r109 = zext i32 %r108 to i96
%r110 = shl i96 %r109, 64
%r111 = or i96 %r105, %r110
%r112 = zext i96 %r111 to i128
%r114 = getelementptr i32, i32* %r3, i32 3
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i128
%r117 = shl i128 %r116, 96
%r118 = or i128 %r112, %r117
%r119 = zext i128 %r118 to i160
%r121 = getelementptr i32, i32* %r3, i32 4
%r122 = load i32, i32* %r121
%r123 = zext i32 %r122 to i160
%r124 = shl i160 %r123, 128
%r125 = or i160 %r119, %r124
%r126 = zext i160 %r125 to i192
%r128 = getelementptr i32, i32* %r3, i32 5
%r129 = load i32, i32* %r128
%r130 = zext i32 %r129 to i192
%r131 = shl i192 %r130, 160
%r132 = or i192 %r126, %r131
%r133 = zext i192 %r132 to i224
%r135 = getelementptr i32, i32* %r3, i32 6
%r136 = load i32, i32* %r135
%r137 = zext i32 %r136 to i224
%r138 = shl i224 %r137, 192
%r139 = or i224 %r133, %r138
%r140 = zext i224 %r139 to i256
%r142 = getelementptr i32, i32* %r3, i32 7
%r143 = load i32, i32* %r142
%r144 = zext i32 %r143 to i256
%r145 = shl i256 %r144, 224
%r146 = or i256 %r140, %r145
%r147 = zext i256 %r146 to i288
%r149 = getelementptr i32, i32* %r3, i32 8
%r150 = load i32, i32* %r149
%r151 = zext i32 %r150 to i288
%r152 = shl i288 %r151, 256
%r153 = or i288 %r147, %r152
%r154 = zext i288 %r153 to i320
%r156 = getelementptr i32, i32* %r3, i32 9
%r157 = load i32, i32* %r156
%r158 = zext i32 %r157 to i320
%r159 = shl i320 %r158, 288
%r160 = or i320 %r154, %r159
%r161 = zext i320 %r160 to i352
%r163 = getelementptr i32, i32* %r3, i32 10
%r164 = load i32, i32* %r163
%r165 = zext i32 %r164 to i352
%r166 = shl i352 %r165, 320
%r167 = or i352 %r161, %r166
%r168 = zext i352 %r167 to i384
%r170 = getelementptr i32, i32* %r3, i32 11
%r171 = load i32, i32* %r170
%r172 = zext i32 %r171 to i384
%r173 = shl i384 %r172, 352
%r174 = or i384 %r168, %r173
%r175 = zext i384 %r174 to i416
%r177 = getelementptr i32, i32* %r3, i32 12
%r178 = load i32, i32* %r177
%r179 = zext i32 %r178 to i416
%r180 = shl i416 %r179, 384
%r181 = or i416 %r175, %r180
%r182 = zext i416 %r181 to i448
%r184 = getelementptr i32, i32* %r3, i32 13
%r185 = load i32, i32* %r184
%r186 = zext i32 %r185 to i448
%r187 = shl i448 %r186, 416
%r188 = or i448 %r182, %r187
%r189 = zext i448 %r96 to i480
%r190 = zext i448 %r188 to i480
%r191 = add i480 %r189, %r190
%r192 = trunc i480 %r191 to i224
%r194 = getelementptr i32, i32* %r1, i32 0
%r195 = trunc i224 %r192 to i32
store i32 %r195, i32* %r194
%r196 = lshr i224 %r192, 32
%r198 = getelementptr i32, i32* %r1, i32 1
%r199 = trunc i224 %r196 to i32
store i32 %r199, i32* %r198
%r200 = lshr i224 %r196, 32
%r202 = getelementptr i32, i32* %r1, i32 2
%r203 = trunc i224 %r200 to i32
store i32 %r203, i32* %r202
%r204 = lshr i224 %r200, 32
%r206 = getelementptr i32, i32* %r1, i32 3
%r207 = trunc i224 %r204 to i32
store i32 %r207, i32* %r206
%r208 = lshr i224 %r204, 32
%r210 = getelementptr i32, i32* %r1, i32 4
%r211 = trunc i224 %r208 to i32
store i32 %r211, i32* %r210
%r212 = lshr i224 %r208, 32
%r214 = getelementptr i32, i32* %r1, i32 5
%r215 = trunc i224 %r212 to i32
store i32 %r215, i32* %r214
%r216 = lshr i224 %r212, 32
%r218 = getelementptr i32, i32* %r1, i32 6
%r219 = trunc i224 %r216 to i32
store i32 %r219, i32* %r218
%r220 = lshr i480 %r191, 224
%r221 = trunc i480 %r220 to i256
%r222 = load i32, i32* %r4
%r223 = zext i32 %r222 to i64
%r225 = getelementptr i32, i32* %r4, i32 1
%r226 = load i32, i32* %r225
%r227 = zext i32 %r226 to i64
%r228 = shl i64 %r227, 32
%r229 = or i64 %r223, %r228
%r230 = zext i64 %r229 to i96
%r232 = getelementptr i32, i32* %r4, i32 2
%r233 = load i32, i32* %r232
%r234 = zext i32 %r233 to i96
%r235 = shl i96 %r234, 64
%r236 = or i96 %r230, %r235
%r237 = zext i96 %r236 to i128
%r239 = getelementptr i32, i32* %r4, i32 3
%r240 = load i32, i32* %r239
%r241 = zext i32 %r240 to i128
%r242 = shl i128 %r241, 96
%r243 = or i128 %r237, %r242
%r244 = zext i128 %r243 to i160
%r246 = getelementptr i32, i32* %r4, i32 4
%r247 = load i32, i32* %r246
%r248 = zext i32 %r247 to i160
%r249 = shl i160 %r248, 128
%r250 = or i160 %r244, %r249
%r251 = zext i160 %r250 to i192
%r253 = getelementptr i32, i32* %r4, i32 5
%r254 = load i32, i32* %r253
%r255 = zext i32 %r254 to i192
%r256 = shl i192 %r255, 160
%r257 = or i192 %r251, %r256
%r258 = zext i192 %r257 to i224
%r260 = getelementptr i32, i32* %r4, i32 6
%r261 = load i32, i32* %r260
%r262 = zext i32 %r261 to i224
%r263 = shl i224 %r262, 192
%r264 = or i224 %r258, %r263
%r265 = zext i224 %r264 to i256
%r266 = sub i256 %r221, %r265
%r267 = lshr i256 %r266, 224
%r268 = trunc i256 %r267 to i1
%r269 = select i1 %r268, i256 %r221, i256 %r266
%r270 = trunc i256 %r269 to i224
%r272 = getelementptr i32, i32* %r1, i32 7
%r274 = getelementptr i32, i32* %r272, i32 0
%r275 = trunc i224 %r270 to i32
store i32 %r275, i32* %r274
%r276 = lshr i224 %r270, 32
%r278 = getelementptr i32, i32* %r272, i32 1
%r279 = trunc i224 %r276 to i32
store i32 %r279, i32* %r278
%r280 = lshr i224 %r276, 32
%r282 = getelementptr i32, i32* %r272, i32 2
%r283 = trunc i224 %r280 to i32
store i32 %r283, i32* %r282
%r284 = lshr i224 %r280, 32
%r286 = getelementptr i32, i32* %r272, i32 3
%r287 = trunc i224 %r284 to i32
store i32 %r287, i32* %r286
%r288 = lshr i224 %r284, 32
%r290 = getelementptr i32, i32* %r272, i32 4
%r291 = trunc i224 %r288 to i32
store i32 %r291, i32* %r290
%r292 = lshr i224 %r288, 32
%r294 = getelementptr i32, i32* %r272, i32 5
%r295 = trunc i224 %r292 to i32
store i32 %r295, i32* %r294
%r296 = lshr i224 %r292, 32
%r298 = getelementptr i32, i32* %r272, i32 6
%r299 = trunc i224 %r296 to i32
store i32 %r299, i32* %r298
ret void
}
define void @mcl_fpDbl_sub7L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r2, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r2, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r2, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r2, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = zext i384 %r82 to i416
%r85 = getelementptr i32, i32* %r2, i32 12
%r86 = load i32, i32* %r85
%r87 = zext i32 %r86 to i416
%r88 = shl i416 %r87, 384
%r89 = or i416 %r83, %r88
%r90 = zext i416 %r89 to i448
%r92 = getelementptr i32, i32* %r2, i32 13
%r93 = load i32, i32* %r92
%r94 = zext i32 %r93 to i448
%r95 = shl i448 %r94, 416
%r96 = or i448 %r90, %r95
%r97 = load i32, i32* %r3
%r98 = zext i32 %r97 to i64
%r100 = getelementptr i32, i32* %r3, i32 1
%r101 = load i32, i32* %r100
%r102 = zext i32 %r101 to i64
%r103 = shl i64 %r102, 32
%r104 = or i64 %r98, %r103
%r105 = zext i64 %r104 to i96
%r107 = getelementptr i32, i32* %r3, i32 2
%r108 = load i32, i32* %r107
%r109 = zext i32 %r108 to i96
%r110 = shl i96 %r109, 64
%r111 = or i96 %r105, %r110
%r112 = zext i96 %r111 to i128
%r114 = getelementptr i32, i32* %r3, i32 3
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i128
%r117 = shl i128 %r116, 96
%r118 = or i128 %r112, %r117
%r119 = zext i128 %r118 to i160
%r121 = getelementptr i32, i32* %r3, i32 4
%r122 = load i32, i32* %r121
%r123 = zext i32 %r122 to i160
%r124 = shl i160 %r123, 128
%r125 = or i160 %r119, %r124
%r126 = zext i160 %r125 to i192
%r128 = getelementptr i32, i32* %r3, i32 5
%r129 = load i32, i32* %r128
%r130 = zext i32 %r129 to i192
%r131 = shl i192 %r130, 160
%r132 = or i192 %r126, %r131
%r133 = zext i192 %r132 to i224
%r135 = getelementptr i32, i32* %r3, i32 6
%r136 = load i32, i32* %r135
%r137 = zext i32 %r136 to i224
%r138 = shl i224 %r137, 192
%r139 = or i224 %r133, %r138
%r140 = zext i224 %r139 to i256
%r142 = getelementptr i32, i32* %r3, i32 7
%r143 = load i32, i32* %r142
%r144 = zext i32 %r143 to i256
%r145 = shl i256 %r144, 224
%r146 = or i256 %r140, %r145
%r147 = zext i256 %r146 to i288
%r149 = getelementptr i32, i32* %r3, i32 8
%r150 = load i32, i32* %r149
%r151 = zext i32 %r150 to i288
%r152 = shl i288 %r151, 256
%r153 = or i288 %r147, %r152
%r154 = zext i288 %r153 to i320
%r156 = getelementptr i32, i32* %r3, i32 9
%r157 = load i32, i32* %r156
%r158 = zext i32 %r157 to i320
%r159 = shl i320 %r158, 288
%r160 = or i320 %r154, %r159
%r161 = zext i320 %r160 to i352
%r163 = getelementptr i32, i32* %r3, i32 10
%r164 = load i32, i32* %r163
%r165 = zext i32 %r164 to i352
%r166 = shl i352 %r165, 320
%r167 = or i352 %r161, %r166
%r168 = zext i352 %r167 to i384
%r170 = getelementptr i32, i32* %r3, i32 11
%r171 = load i32, i32* %r170
%r172 = zext i32 %r171 to i384
%r173 = shl i384 %r172, 352
%r174 = or i384 %r168, %r173
%r175 = zext i384 %r174 to i416
%r177 = getelementptr i32, i32* %r3, i32 12
%r178 = load i32, i32* %r177
%r179 = zext i32 %r178 to i416
%r180 = shl i416 %r179, 384
%r181 = or i416 %r175, %r180
%r182 = zext i416 %r181 to i448
%r184 = getelementptr i32, i32* %r3, i32 13
%r185 = load i32, i32* %r184
%r186 = zext i32 %r185 to i448
%r187 = shl i448 %r186, 416
%r188 = or i448 %r182, %r187
%r189 = zext i448 %r96 to i480
%r190 = zext i448 %r188 to i480
%r191 = sub i480 %r189, %r190
%r192 = trunc i480 %r191 to i224
%r194 = getelementptr i32, i32* %r1, i32 0
%r195 = trunc i224 %r192 to i32
store i32 %r195, i32* %r194
%r196 = lshr i224 %r192, 32
%r198 = getelementptr i32, i32* %r1, i32 1
%r199 = trunc i224 %r196 to i32
store i32 %r199, i32* %r198
%r200 = lshr i224 %r196, 32
%r202 = getelementptr i32, i32* %r1, i32 2
%r203 = trunc i224 %r200 to i32
store i32 %r203, i32* %r202
%r204 = lshr i224 %r200, 32
%r206 = getelementptr i32, i32* %r1, i32 3
%r207 = trunc i224 %r204 to i32
store i32 %r207, i32* %r206
%r208 = lshr i224 %r204, 32
%r210 = getelementptr i32, i32* %r1, i32 4
%r211 = trunc i224 %r208 to i32
store i32 %r211, i32* %r210
%r212 = lshr i224 %r208, 32
%r214 = getelementptr i32, i32* %r1, i32 5
%r215 = trunc i224 %r212 to i32
store i32 %r215, i32* %r214
%r216 = lshr i224 %r212, 32
%r218 = getelementptr i32, i32* %r1, i32 6
%r219 = trunc i224 %r216 to i32
store i32 %r219, i32* %r218
%r220 = lshr i480 %r191, 224
%r221 = trunc i480 %r220 to i224
%r222 = lshr i480 %r191, 448
%r223 = trunc i480 %r222 to i1
%r224 = load i32, i32* %r4
%r225 = zext i32 %r224 to i64
%r227 = getelementptr i32, i32* %r4, i32 1
%r228 = load i32, i32* %r227
%r229 = zext i32 %r228 to i64
%r230 = shl i64 %r229, 32
%r231 = or i64 %r225, %r230
%r232 = zext i64 %r231 to i96
%r234 = getelementptr i32, i32* %r4, i32 2
%r235 = load i32, i32* %r234
%r236 = zext i32 %r235 to i96
%r237 = shl i96 %r236, 64
%r238 = or i96 %r232, %r237
%r239 = zext i96 %r238 to i128
%r241 = getelementptr i32, i32* %r4, i32 3
%r242 = load i32, i32* %r241
%r243 = zext i32 %r242 to i128
%r244 = shl i128 %r243, 96
%r245 = or i128 %r239, %r244
%r246 = zext i128 %r245 to i160
%r248 = getelementptr i32, i32* %r4, i32 4
%r249 = load i32, i32* %r248
%r250 = zext i32 %r249 to i160
%r251 = shl i160 %r250, 128
%r252 = or i160 %r246, %r251
%r253 = zext i160 %r252 to i192
%r255 = getelementptr i32, i32* %r4, i32 5
%r256 = load i32, i32* %r255
%r257 = zext i32 %r256 to i192
%r258 = shl i192 %r257, 160
%r259 = or i192 %r253, %r258
%r260 = zext i192 %r259 to i224
%r262 = getelementptr i32, i32* %r4, i32 6
%r263 = load i32, i32* %r262
%r264 = zext i32 %r263 to i224
%r265 = shl i224 %r264, 192
%r266 = or i224 %r260, %r265
%r268 = select i1 %r223, i224 %r266, i224 0
%r269 = add i224 %r221, %r268
%r271 = getelementptr i32, i32* %r1, i32 7
%r273 = getelementptr i32, i32* %r271, i32 0
%r274 = trunc i224 %r269 to i32
store i32 %r274, i32* %r273
%r275 = lshr i224 %r269, 32
%r277 = getelementptr i32, i32* %r271, i32 1
%r278 = trunc i224 %r275 to i32
store i32 %r278, i32* %r277
%r279 = lshr i224 %r275, 32
%r281 = getelementptr i32, i32* %r271, i32 2
%r282 = trunc i224 %r279 to i32
store i32 %r282, i32* %r281
%r283 = lshr i224 %r279, 32
%r285 = getelementptr i32, i32* %r271, i32 3
%r286 = trunc i224 %r283 to i32
store i32 %r286, i32* %r285
%r287 = lshr i224 %r283, 32
%r289 = getelementptr i32, i32* %r271, i32 4
%r290 = trunc i224 %r287 to i32
store i32 %r290, i32* %r289
%r291 = lshr i224 %r287, 32
%r293 = getelementptr i32, i32* %r271, i32 5
%r294 = trunc i224 %r291 to i32
store i32 %r294, i32* %r293
%r295 = lshr i224 %r291, 32
%r297 = getelementptr i32, i32* %r271, i32 6
%r298 = trunc i224 %r295 to i32
store i32 %r298, i32* %r297
ret void
}
define i288 @mulPv256x32(i32* noalias  %r2, i32 %r3)
{
%r5 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 0)
%r6 = trunc i64 %r5 to i32
%r7 = call i32 @extractHigh32(i64 %r5)
%r9 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 1)
%r10 = trunc i64 %r9 to i32
%r11 = call i32 @extractHigh32(i64 %r9)
%r13 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 2)
%r14 = trunc i64 %r13 to i32
%r15 = call i32 @extractHigh32(i64 %r13)
%r17 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 3)
%r18 = trunc i64 %r17 to i32
%r19 = call i32 @extractHigh32(i64 %r17)
%r21 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 4)
%r22 = trunc i64 %r21 to i32
%r23 = call i32 @extractHigh32(i64 %r21)
%r25 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 5)
%r26 = trunc i64 %r25 to i32
%r27 = call i32 @extractHigh32(i64 %r25)
%r29 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 6)
%r30 = trunc i64 %r29 to i32
%r31 = call i32 @extractHigh32(i64 %r29)
%r33 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 7)
%r34 = trunc i64 %r33 to i32
%r35 = call i32 @extractHigh32(i64 %r33)
%r36 = zext i32 %r6 to i64
%r37 = zext i32 %r10 to i64
%r38 = shl i64 %r37, 32
%r39 = or i64 %r36, %r38
%r40 = zext i64 %r39 to i96
%r41 = zext i32 %r14 to i96
%r42 = shl i96 %r41, 64
%r43 = or i96 %r40, %r42
%r44 = zext i96 %r43 to i128
%r45 = zext i32 %r18 to i128
%r46 = shl i128 %r45, 96
%r47 = or i128 %r44, %r46
%r48 = zext i128 %r47 to i160
%r49 = zext i32 %r22 to i160
%r50 = shl i160 %r49, 128
%r51 = or i160 %r48, %r50
%r52 = zext i160 %r51 to i192
%r53 = zext i32 %r26 to i192
%r54 = shl i192 %r53, 160
%r55 = or i192 %r52, %r54
%r56 = zext i192 %r55 to i224
%r57 = zext i32 %r30 to i224
%r58 = shl i224 %r57, 192
%r59 = or i224 %r56, %r58
%r60 = zext i224 %r59 to i256
%r61 = zext i32 %r34 to i256
%r62 = shl i256 %r61, 224
%r63 = or i256 %r60, %r62
%r64 = zext i32 %r7 to i64
%r65 = zext i32 %r11 to i64
%r66 = shl i64 %r65, 32
%r67 = or i64 %r64, %r66
%r68 = zext i64 %r67 to i96
%r69 = zext i32 %r15 to i96
%r70 = shl i96 %r69, 64
%r71 = or i96 %r68, %r70
%r72 = zext i96 %r71 to i128
%r73 = zext i32 %r19 to i128
%r74 = shl i128 %r73, 96
%r75 = or i128 %r72, %r74
%r76 = zext i128 %r75 to i160
%r77 = zext i32 %r23 to i160
%r78 = shl i160 %r77, 128
%r79 = or i160 %r76, %r78
%r80 = zext i160 %r79 to i192
%r81 = zext i32 %r27 to i192
%r82 = shl i192 %r81, 160
%r83 = or i192 %r80, %r82
%r84 = zext i192 %r83 to i224
%r85 = zext i32 %r31 to i224
%r86 = shl i224 %r85, 192
%r87 = or i224 %r84, %r86
%r88 = zext i224 %r87 to i256
%r89 = zext i32 %r35 to i256
%r90 = shl i256 %r89, 224
%r91 = or i256 %r88, %r90
%r92 = zext i256 %r63 to i288
%r93 = zext i256 %r91 to i288
%r94 = shl i288 %r93, 32
%r95 = add i288 %r92, %r94
ret i288 %r95
}
define void @mcl_fp_mont8L(i32* %r1, i32* %r2, i32* %r3, i32* %r4)
{
%r6 = getelementptr i32, i32* %r4, i32 -1
%r7 = load i32, i32* %r6
%r9 = getelementptr i32, i32* %r3, i32 0
%r10 = load i32, i32* %r9
%r11 = call i288 @mulPv256x32(i32* %r2, i32 %r10)
%r12 = zext i288 %r11 to i320
%r13 = trunc i288 %r11 to i32
%r14 = mul i32 %r13, %r7
%r15 = call i288 @mulPv256x32(i32* %r4, i32 %r14)
%r16 = zext i288 %r15 to i320
%r17 = add i320 %r12, %r16
%r18 = lshr i320 %r17, 32
%r20 = getelementptr i32, i32* %r3, i32 1
%r21 = load i32, i32* %r20
%r22 = call i288 @mulPv256x32(i32* %r2, i32 %r21)
%r23 = zext i288 %r22 to i320
%r24 = add i320 %r18, %r23
%r25 = trunc i320 %r24 to i32
%r26 = mul i32 %r25, %r7
%r27 = call i288 @mulPv256x32(i32* %r4, i32 %r26)
%r28 = zext i288 %r27 to i320
%r29 = add i320 %r24, %r28
%r30 = lshr i320 %r29, 32
%r32 = getelementptr i32, i32* %r3, i32 2
%r33 = load i32, i32* %r32
%r34 = call i288 @mulPv256x32(i32* %r2, i32 %r33)
%r35 = zext i288 %r34 to i320
%r36 = add i320 %r30, %r35
%r37 = trunc i320 %r36 to i32
%r38 = mul i32 %r37, %r7
%r39 = call i288 @mulPv256x32(i32* %r4, i32 %r38)
%r40 = zext i288 %r39 to i320
%r41 = add i320 %r36, %r40
%r42 = lshr i320 %r41, 32
%r44 = getelementptr i32, i32* %r3, i32 3
%r45 = load i32, i32* %r44
%r46 = call i288 @mulPv256x32(i32* %r2, i32 %r45)
%r47 = zext i288 %r46 to i320
%r48 = add i320 %r42, %r47
%r49 = trunc i320 %r48 to i32
%r50 = mul i32 %r49, %r7
%r51 = call i288 @mulPv256x32(i32* %r4, i32 %r50)
%r52 = zext i288 %r51 to i320
%r53 = add i320 %r48, %r52
%r54 = lshr i320 %r53, 32
%r56 = getelementptr i32, i32* %r3, i32 4
%r57 = load i32, i32* %r56
%r58 = call i288 @mulPv256x32(i32* %r2, i32 %r57)
%r59 = zext i288 %r58 to i320
%r60 = add i320 %r54, %r59
%r61 = trunc i320 %r60 to i32
%r62 = mul i32 %r61, %r7
%r63 = call i288 @mulPv256x32(i32* %r4, i32 %r62)
%r64 = zext i288 %r63 to i320
%r65 = add i320 %r60, %r64
%r66 = lshr i320 %r65, 32
%r68 = getelementptr i32, i32* %r3, i32 5
%r69 = load i32, i32* %r68
%r70 = call i288 @mulPv256x32(i32* %r2, i32 %r69)
%r71 = zext i288 %r70 to i320
%r72 = add i320 %r66, %r71
%r73 = trunc i320 %r72 to i32
%r74 = mul i32 %r73, %r7
%r75 = call i288 @mulPv256x32(i32* %r4, i32 %r74)
%r76 = zext i288 %r75 to i320
%r77 = add i320 %r72, %r76
%r78 = lshr i320 %r77, 32
%r80 = getelementptr i32, i32* %r3, i32 6
%r81 = load i32, i32* %r80
%r82 = call i288 @mulPv256x32(i32* %r2, i32 %r81)
%r83 = zext i288 %r82 to i320
%r84 = add i320 %r78, %r83
%r85 = trunc i320 %r84 to i32
%r86 = mul i32 %r85, %r7
%r87 = call i288 @mulPv256x32(i32* %r4, i32 %r86)
%r88 = zext i288 %r87 to i320
%r89 = add i320 %r84, %r88
%r90 = lshr i320 %r89, 32
%r92 = getelementptr i32, i32* %r3, i32 7
%r93 = load i32, i32* %r92
%r94 = call i288 @mulPv256x32(i32* %r2, i32 %r93)
%r95 = zext i288 %r94 to i320
%r96 = add i320 %r90, %r95
%r97 = trunc i320 %r96 to i32
%r98 = mul i32 %r97, %r7
%r99 = call i288 @mulPv256x32(i32* %r4, i32 %r98)
%r100 = zext i288 %r99 to i320
%r101 = add i320 %r96, %r100
%r102 = lshr i320 %r101, 32
%r103 = trunc i320 %r102 to i288
%r104 = load i32, i32* %r4
%r105 = zext i32 %r104 to i64
%r107 = getelementptr i32, i32* %r4, i32 1
%r108 = load i32, i32* %r107
%r109 = zext i32 %r108 to i64
%r110 = shl i64 %r109, 32
%r111 = or i64 %r105, %r110
%r112 = zext i64 %r111 to i96
%r114 = getelementptr i32, i32* %r4, i32 2
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i96
%r117 = shl i96 %r116, 64
%r118 = or i96 %r112, %r117
%r119 = zext i96 %r118 to i128
%r121 = getelementptr i32, i32* %r4, i32 3
%r122 = load i32, i32* %r121
%r123 = zext i32 %r122 to i128
%r124 = shl i128 %r123, 96
%r125 = or i128 %r119, %r124
%r126 = zext i128 %r125 to i160
%r128 = getelementptr i32, i32* %r4, i32 4
%r129 = load i32, i32* %r128
%r130 = zext i32 %r129 to i160
%r131 = shl i160 %r130, 128
%r132 = or i160 %r126, %r131
%r133 = zext i160 %r132 to i192
%r135 = getelementptr i32, i32* %r4, i32 5
%r136 = load i32, i32* %r135
%r137 = zext i32 %r136 to i192
%r138 = shl i192 %r137, 160
%r139 = or i192 %r133, %r138
%r140 = zext i192 %r139 to i224
%r142 = getelementptr i32, i32* %r4, i32 6
%r143 = load i32, i32* %r142
%r144 = zext i32 %r143 to i224
%r145 = shl i224 %r144, 192
%r146 = or i224 %r140, %r145
%r147 = zext i224 %r146 to i256
%r149 = getelementptr i32, i32* %r4, i32 7
%r150 = load i32, i32* %r149
%r151 = zext i32 %r150 to i256
%r152 = shl i256 %r151, 224
%r153 = or i256 %r147, %r152
%r154 = zext i256 %r153 to i288
%r155 = sub i288 %r103, %r154
%r156 = lshr i288 %r155, 256
%r157 = trunc i288 %r156 to i1
%r158 = select i1 %r157, i288 %r103, i288 %r155
%r159 = trunc i288 %r158 to i256
%r161 = getelementptr i32, i32* %r1, i32 0
%r162 = trunc i256 %r159 to i32
store i32 %r162, i32* %r161
%r163 = lshr i256 %r159, 32
%r165 = getelementptr i32, i32* %r1, i32 1
%r166 = trunc i256 %r163 to i32
store i32 %r166, i32* %r165
%r167 = lshr i256 %r163, 32
%r169 = getelementptr i32, i32* %r1, i32 2
%r170 = trunc i256 %r167 to i32
store i32 %r170, i32* %r169
%r171 = lshr i256 %r167, 32
%r173 = getelementptr i32, i32* %r1, i32 3
%r174 = trunc i256 %r171 to i32
store i32 %r174, i32* %r173
%r175 = lshr i256 %r171, 32
%r177 = getelementptr i32, i32* %r1, i32 4
%r178 = trunc i256 %r175 to i32
store i32 %r178, i32* %r177
%r179 = lshr i256 %r175, 32
%r181 = getelementptr i32, i32* %r1, i32 5
%r182 = trunc i256 %r179 to i32
store i32 %r182, i32* %r181
%r183 = lshr i256 %r179, 32
%r185 = getelementptr i32, i32* %r1, i32 6
%r186 = trunc i256 %r183 to i32
store i32 %r186, i32* %r185
%r187 = lshr i256 %r183, 32
%r189 = getelementptr i32, i32* %r1, i32 7
%r190 = trunc i256 %r187 to i32
store i32 %r190, i32* %r189
ret void
}
define void @mcl_fp_montNF8L(i32* %r1, i32* %r2, i32* %r3, i32* %r4)
{
%r6 = getelementptr i32, i32* %r4, i32 -1
%r7 = load i32, i32* %r6
%r8 = load i32, i32* %r3
%r9 = call i288 @mulPv256x32(i32* %r2, i32 %r8)
%r10 = trunc i288 %r9 to i32
%r11 = mul i32 %r10, %r7
%r12 = call i288 @mulPv256x32(i32* %r4, i32 %r11)
%r13 = add i288 %r9, %r12
%r14 = lshr i288 %r13, 32
%r16 = getelementptr i32, i32* %r3, i32 1
%r17 = load i32, i32* %r16
%r18 = call i288 @mulPv256x32(i32* %r2, i32 %r17)
%r19 = add i288 %r14, %r18
%r20 = trunc i288 %r19 to i32
%r21 = mul i32 %r20, %r7
%r22 = call i288 @mulPv256x32(i32* %r4, i32 %r21)
%r23 = add i288 %r19, %r22
%r24 = lshr i288 %r23, 32
%r26 = getelementptr i32, i32* %r3, i32 2
%r27 = load i32, i32* %r26
%r28 = call i288 @mulPv256x32(i32* %r2, i32 %r27)
%r29 = add i288 %r24, %r28
%r30 = trunc i288 %r29 to i32
%r31 = mul i32 %r30, %r7
%r32 = call i288 @mulPv256x32(i32* %r4, i32 %r31)
%r33 = add i288 %r29, %r32
%r34 = lshr i288 %r33, 32
%r36 = getelementptr i32, i32* %r3, i32 3
%r37 = load i32, i32* %r36
%r38 = call i288 @mulPv256x32(i32* %r2, i32 %r37)
%r39 = add i288 %r34, %r38
%r40 = trunc i288 %r39 to i32
%r41 = mul i32 %r40, %r7
%r42 = call i288 @mulPv256x32(i32* %r4, i32 %r41)
%r43 = add i288 %r39, %r42
%r44 = lshr i288 %r43, 32
%r46 = getelementptr i32, i32* %r3, i32 4
%r47 = load i32, i32* %r46
%r48 = call i288 @mulPv256x32(i32* %r2, i32 %r47)
%r49 = add i288 %r44, %r48
%r50 = trunc i288 %r49 to i32
%r51 = mul i32 %r50, %r7
%r52 = call i288 @mulPv256x32(i32* %r4, i32 %r51)
%r53 = add i288 %r49, %r52
%r54 = lshr i288 %r53, 32
%r56 = getelementptr i32, i32* %r3, i32 5
%r57 = load i32, i32* %r56
%r58 = call i288 @mulPv256x32(i32* %r2, i32 %r57)
%r59 = add i288 %r54, %r58
%r60 = trunc i288 %r59 to i32
%r61 = mul i32 %r60, %r7
%r62 = call i288 @mulPv256x32(i32* %r4, i32 %r61)
%r63 = add i288 %r59, %r62
%r64 = lshr i288 %r63, 32
%r66 = getelementptr i32, i32* %r3, i32 6
%r67 = load i32, i32* %r66
%r68 = call i288 @mulPv256x32(i32* %r2, i32 %r67)
%r69 = add i288 %r64, %r68
%r70 = trunc i288 %r69 to i32
%r71 = mul i32 %r70, %r7
%r72 = call i288 @mulPv256x32(i32* %r4, i32 %r71)
%r73 = add i288 %r69, %r72
%r74 = lshr i288 %r73, 32
%r76 = getelementptr i32, i32* %r3, i32 7
%r77 = load i32, i32* %r76
%r78 = call i288 @mulPv256x32(i32* %r2, i32 %r77)
%r79 = add i288 %r74, %r78
%r80 = trunc i288 %r79 to i32
%r81 = mul i32 %r80, %r7
%r82 = call i288 @mulPv256x32(i32* %r4, i32 %r81)
%r83 = add i288 %r79, %r82
%r84 = lshr i288 %r83, 32
%r85 = trunc i288 %r84 to i256
%r86 = load i32, i32* %r4
%r87 = zext i32 %r86 to i64
%r89 = getelementptr i32, i32* %r4, i32 1
%r90 = load i32, i32* %r89
%r91 = zext i32 %r90 to i64
%r92 = shl i64 %r91, 32
%r93 = or i64 %r87, %r92
%r94 = zext i64 %r93 to i96
%r96 = getelementptr i32, i32* %r4, i32 2
%r97 = load i32, i32* %r96
%r98 = zext i32 %r97 to i96
%r99 = shl i96 %r98, 64
%r100 = or i96 %r94, %r99
%r101 = zext i96 %r100 to i128
%r103 = getelementptr i32, i32* %r4, i32 3
%r104 = load i32, i32* %r103
%r105 = zext i32 %r104 to i128
%r106 = shl i128 %r105, 96
%r107 = or i128 %r101, %r106
%r108 = zext i128 %r107 to i160
%r110 = getelementptr i32, i32* %r4, i32 4
%r111 = load i32, i32* %r110
%r112 = zext i32 %r111 to i160
%r113 = shl i160 %r112, 128
%r114 = or i160 %r108, %r113
%r115 = zext i160 %r114 to i192
%r117 = getelementptr i32, i32* %r4, i32 5
%r118 = load i32, i32* %r117
%r119 = zext i32 %r118 to i192
%r120 = shl i192 %r119, 160
%r121 = or i192 %r115, %r120
%r122 = zext i192 %r121 to i224
%r124 = getelementptr i32, i32* %r4, i32 6
%r125 = load i32, i32* %r124
%r126 = zext i32 %r125 to i224
%r127 = shl i224 %r126, 192
%r128 = or i224 %r122, %r127
%r129 = zext i224 %r128 to i256
%r131 = getelementptr i32, i32* %r4, i32 7
%r132 = load i32, i32* %r131
%r133 = zext i32 %r132 to i256
%r134 = shl i256 %r133, 224
%r135 = or i256 %r129, %r134
%r136 = sub i256 %r85, %r135
%r137 = lshr i256 %r136, 255
%r138 = trunc i256 %r137 to i1
%r139 = select i1 %r138, i256 %r85, i256 %r136
%r141 = getelementptr i32, i32* %r1, i32 0
%r142 = trunc i256 %r139 to i32
store i32 %r142, i32* %r141
%r143 = lshr i256 %r139, 32
%r145 = getelementptr i32, i32* %r1, i32 1
%r146 = trunc i256 %r143 to i32
store i32 %r146, i32* %r145
%r147 = lshr i256 %r143, 32
%r149 = getelementptr i32, i32* %r1, i32 2
%r150 = trunc i256 %r147 to i32
store i32 %r150, i32* %r149
%r151 = lshr i256 %r147, 32
%r153 = getelementptr i32, i32* %r1, i32 3
%r154 = trunc i256 %r151 to i32
store i32 %r154, i32* %r153
%r155 = lshr i256 %r151, 32
%r157 = getelementptr i32, i32* %r1, i32 4
%r158 = trunc i256 %r155 to i32
store i32 %r158, i32* %r157
%r159 = lshr i256 %r155, 32
%r161 = getelementptr i32, i32* %r1, i32 5
%r162 = trunc i256 %r159 to i32
store i32 %r162, i32* %r161
%r163 = lshr i256 %r159, 32
%r165 = getelementptr i32, i32* %r1, i32 6
%r166 = trunc i256 %r163 to i32
store i32 %r166, i32* %r165
%r167 = lshr i256 %r163, 32
%r169 = getelementptr i32, i32* %r1, i32 7
%r170 = trunc i256 %r167 to i32
store i32 %r170, i32* %r169
ret void
}
define void @mcl_fp_montRed8L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3)
{
%r5 = getelementptr i32, i32* %r3, i32 -1
%r6 = load i32, i32* %r5
%r7 = load i32, i32* %r3
%r8 = zext i32 %r7 to i64
%r10 = getelementptr i32, i32* %r3, i32 1
%r11 = load i32, i32* %r10
%r12 = zext i32 %r11 to i64
%r13 = shl i64 %r12, 32
%r14 = or i64 %r8, %r13
%r15 = zext i64 %r14 to i96
%r17 = getelementptr i32, i32* %r3, i32 2
%r18 = load i32, i32* %r17
%r19 = zext i32 %r18 to i96
%r20 = shl i96 %r19, 64
%r21 = or i96 %r15, %r20
%r22 = zext i96 %r21 to i128
%r24 = getelementptr i32, i32* %r3, i32 3
%r25 = load i32, i32* %r24
%r26 = zext i32 %r25 to i128
%r27 = shl i128 %r26, 96
%r28 = or i128 %r22, %r27
%r29 = zext i128 %r28 to i160
%r31 = getelementptr i32, i32* %r3, i32 4
%r32 = load i32, i32* %r31
%r33 = zext i32 %r32 to i160
%r34 = shl i160 %r33, 128
%r35 = or i160 %r29, %r34
%r36 = zext i160 %r35 to i192
%r38 = getelementptr i32, i32* %r3, i32 5
%r39 = load i32, i32* %r38
%r40 = zext i32 %r39 to i192
%r41 = shl i192 %r40, 160
%r42 = or i192 %r36, %r41
%r43 = zext i192 %r42 to i224
%r45 = getelementptr i32, i32* %r3, i32 6
%r46 = load i32, i32* %r45
%r47 = zext i32 %r46 to i224
%r48 = shl i224 %r47, 192
%r49 = or i224 %r43, %r48
%r50 = zext i224 %r49 to i256
%r52 = getelementptr i32, i32* %r3, i32 7
%r53 = load i32, i32* %r52
%r54 = zext i32 %r53 to i256
%r55 = shl i256 %r54, 224
%r56 = or i256 %r50, %r55
%r57 = load i32, i32* %r2
%r58 = zext i32 %r57 to i64
%r60 = getelementptr i32, i32* %r2, i32 1
%r61 = load i32, i32* %r60
%r62 = zext i32 %r61 to i64
%r63 = shl i64 %r62, 32
%r64 = or i64 %r58, %r63
%r65 = zext i64 %r64 to i96
%r67 = getelementptr i32, i32* %r2, i32 2
%r68 = load i32, i32* %r67
%r69 = zext i32 %r68 to i96
%r70 = shl i96 %r69, 64
%r71 = or i96 %r65, %r70
%r72 = zext i96 %r71 to i128
%r74 = getelementptr i32, i32* %r2, i32 3
%r75 = load i32, i32* %r74
%r76 = zext i32 %r75 to i128
%r77 = shl i128 %r76, 96
%r78 = or i128 %r72, %r77
%r79 = zext i128 %r78 to i160
%r81 = getelementptr i32, i32* %r2, i32 4
%r82 = load i32, i32* %r81
%r83 = zext i32 %r82 to i160
%r84 = shl i160 %r83, 128
%r85 = or i160 %r79, %r84
%r86 = zext i160 %r85 to i192
%r88 = getelementptr i32, i32* %r2, i32 5
%r89 = load i32, i32* %r88
%r90 = zext i32 %r89 to i192
%r91 = shl i192 %r90, 160
%r92 = or i192 %r86, %r91
%r93 = zext i192 %r92 to i224
%r95 = getelementptr i32, i32* %r2, i32 6
%r96 = load i32, i32* %r95
%r97 = zext i32 %r96 to i224
%r98 = shl i224 %r97, 192
%r99 = or i224 %r93, %r98
%r100 = zext i224 %r99 to i256
%r102 = getelementptr i32, i32* %r2, i32 7
%r103 = load i32, i32* %r102
%r104 = zext i32 %r103 to i256
%r105 = shl i256 %r104, 224
%r106 = or i256 %r100, %r105
%r107 = trunc i256 %r106 to i32
%r108 = mul i32 %r107, %r6
%r109 = call i288 @mulPv256x32(i32* %r3, i32 %r108)
%r111 = getelementptr i32, i32* %r2, i32 8
%r112 = load i32, i32* %r111
%r113 = zext i32 %r112 to i288
%r114 = shl i288 %r113, 256
%r115 = zext i256 %r106 to i288
%r116 = or i288 %r114, %r115
%r117 = zext i288 %r116 to i320
%r118 = zext i288 %r109 to i320
%r119 = add i320 %r117, %r118
%r120 = lshr i320 %r119, 32
%r121 = trunc i320 %r120 to i288
%r122 = lshr i288 %r121, 256
%r123 = trunc i288 %r122 to i32
%r124 = trunc i288 %r121 to i256
%r125 = trunc i256 %r124 to i32
%r126 = mul i32 %r125, %r6
%r127 = call i288 @mulPv256x32(i32* %r3, i32 %r126)
%r128 = zext i32 %r123 to i288
%r129 = shl i288 %r128, 256
%r130 = add i288 %r127, %r129
%r132 = getelementptr i32, i32* %r2, i32 9
%r133 = load i32, i32* %r132
%r134 = zext i32 %r133 to i288
%r135 = shl i288 %r134, 256
%r136 = zext i256 %r124 to i288
%r137 = or i288 %r135, %r136
%r138 = zext i288 %r137 to i320
%r139 = zext i288 %r130 to i320
%r140 = add i320 %r138, %r139
%r141 = lshr i320 %r140, 32
%r142 = trunc i320 %r141 to i288
%r143 = lshr i288 %r142, 256
%r144 = trunc i288 %r143 to i32
%r145 = trunc i288 %r142 to i256
%r146 = trunc i256 %r145 to i32
%r147 = mul i32 %r146, %r6
%r148 = call i288 @mulPv256x32(i32* %r3, i32 %r147)
%r149 = zext i32 %r144 to i288
%r150 = shl i288 %r149, 256
%r151 = add i288 %r148, %r150
%r153 = getelementptr i32, i32* %r2, i32 10
%r154 = load i32, i32* %r153
%r155 = zext i32 %r154 to i288
%r156 = shl i288 %r155, 256
%r157 = zext i256 %r145 to i288
%r158 = or i288 %r156, %r157
%r159 = zext i288 %r158 to i320
%r160 = zext i288 %r151 to i320
%r161 = add i320 %r159, %r160
%r162 = lshr i320 %r161, 32
%r163 = trunc i320 %r162 to i288
%r164 = lshr i288 %r163, 256
%r165 = trunc i288 %r164 to i32
%r166 = trunc i288 %r163 to i256
%r167 = trunc i256 %r166 to i32
%r168 = mul i32 %r167, %r6
%r169 = call i288 @mulPv256x32(i32* %r3, i32 %r168)
%r170 = zext i32 %r165 to i288
%r171 = shl i288 %r170, 256
%r172 = add i288 %r169, %r171
%r174 = getelementptr i32, i32* %r2, i32 11
%r175 = load i32, i32* %r174
%r176 = zext i32 %r175 to i288
%r177 = shl i288 %r176, 256
%r178 = zext i256 %r166 to i288
%r179 = or i288 %r177, %r178
%r180 = zext i288 %r179 to i320
%r181 = zext i288 %r172 to i320
%r182 = add i320 %r180, %r181
%r183 = lshr i320 %r182, 32
%r184 = trunc i320 %r183 to i288
%r185 = lshr i288 %r184, 256
%r186 = trunc i288 %r185 to i32
%r187 = trunc i288 %r184 to i256
%r188 = trunc i256 %r187 to i32
%r189 = mul i32 %r188, %r6
%r190 = call i288 @mulPv256x32(i32* %r3, i32 %r189)
%r191 = zext i32 %r186 to i288
%r192 = shl i288 %r191, 256
%r193 = add i288 %r190, %r192
%r195 = getelementptr i32, i32* %r2, i32 12
%r196 = load i32, i32* %r195
%r197 = zext i32 %r196 to i288
%r198 = shl i288 %r197, 256
%r199 = zext i256 %r187 to i288
%r200 = or i288 %r198, %r199
%r201 = zext i288 %r200 to i320
%r202 = zext i288 %r193 to i320
%r203 = add i320 %r201, %r202
%r204 = lshr i320 %r203, 32
%r205 = trunc i320 %r204 to i288
%r206 = lshr i288 %r205, 256
%r207 = trunc i288 %r206 to i32
%r208 = trunc i288 %r205 to i256
%r209 = trunc i256 %r208 to i32
%r210 = mul i32 %r209, %r6
%r211 = call i288 @mulPv256x32(i32* %r3, i32 %r210)
%r212 = zext i32 %r207 to i288
%r213 = shl i288 %r212, 256
%r214 = add i288 %r211, %r213
%r216 = getelementptr i32, i32* %r2, i32 13
%r217 = load i32, i32* %r216
%r218 = zext i32 %r217 to i288
%r219 = shl i288 %r218, 256
%r220 = zext i256 %r208 to i288
%r221 = or i288 %r219, %r220
%r222 = zext i288 %r221 to i320
%r223 = zext i288 %r214 to i320
%r224 = add i320 %r222, %r223
%r225 = lshr i320 %r224, 32
%r226 = trunc i320 %r225 to i288
%r227 = lshr i288 %r226, 256
%r228 = trunc i288 %r227 to i32
%r229 = trunc i288 %r226 to i256
%r230 = trunc i256 %r229 to i32
%r231 = mul i32 %r230, %r6
%r232 = call i288 @mulPv256x32(i32* %r3, i32 %r231)
%r233 = zext i32 %r228 to i288
%r234 = shl i288 %r233, 256
%r235 = add i288 %r232, %r234
%r237 = getelementptr i32, i32* %r2, i32 14
%r238 = load i32, i32* %r237
%r239 = zext i32 %r238 to i288
%r240 = shl i288 %r239, 256
%r241 = zext i256 %r229 to i288
%r242 = or i288 %r240, %r241
%r243 = zext i288 %r242 to i320
%r244 = zext i288 %r235 to i320
%r245 = add i320 %r243, %r244
%r246 = lshr i320 %r245, 32
%r247 = trunc i320 %r246 to i288
%r248 = lshr i288 %r247, 256
%r249 = trunc i288 %r248 to i32
%r250 = trunc i288 %r247 to i256
%r251 = trunc i256 %r250 to i32
%r252 = mul i32 %r251, %r6
%r253 = call i288 @mulPv256x32(i32* %r3, i32 %r252)
%r254 = zext i32 %r249 to i288
%r255 = shl i288 %r254, 256
%r256 = add i288 %r253, %r255
%r258 = getelementptr i32, i32* %r2, i32 15
%r259 = load i32, i32* %r258
%r260 = zext i32 %r259 to i288
%r261 = shl i288 %r260, 256
%r262 = zext i256 %r250 to i288
%r263 = or i288 %r261, %r262
%r264 = zext i288 %r263 to i320
%r265 = zext i288 %r256 to i320
%r266 = add i320 %r264, %r265
%r267 = lshr i320 %r266, 32
%r268 = trunc i320 %r267 to i288
%r269 = lshr i288 %r268, 256
%r270 = trunc i288 %r269 to i32
%r271 = trunc i288 %r268 to i256
%r272 = zext i256 %r56 to i288
%r273 = zext i32 %r270 to i288
%r274 = shl i288 %r273, 256
%r275 = zext i256 %r271 to i288
%r276 = or i288 %r274, %r275
%r277 = sub i288 %r276, %r272
%r278 = lshr i288 %r277, 256
%r279 = trunc i288 %r278 to i1
%r280 = select i1 %r279, i288 %r276, i288 %r277
%r281 = trunc i288 %r280 to i256
%r283 = getelementptr i32, i32* %r1, i32 0
%r284 = trunc i256 %r281 to i32
store i32 %r284, i32* %r283
%r285 = lshr i256 %r281, 32
%r287 = getelementptr i32, i32* %r1, i32 1
%r288 = trunc i256 %r285 to i32
store i32 %r288, i32* %r287
%r289 = lshr i256 %r285, 32
%r291 = getelementptr i32, i32* %r1, i32 2
%r292 = trunc i256 %r289 to i32
store i32 %r292, i32* %r291
%r293 = lshr i256 %r289, 32
%r295 = getelementptr i32, i32* %r1, i32 3
%r296 = trunc i256 %r293 to i32
store i32 %r296, i32* %r295
%r297 = lshr i256 %r293, 32
%r299 = getelementptr i32, i32* %r1, i32 4
%r300 = trunc i256 %r297 to i32
store i32 %r300, i32* %r299
%r301 = lshr i256 %r297, 32
%r303 = getelementptr i32, i32* %r1, i32 5
%r304 = trunc i256 %r301 to i32
store i32 %r304, i32* %r303
%r305 = lshr i256 %r301, 32
%r307 = getelementptr i32, i32* %r1, i32 6
%r308 = trunc i256 %r305 to i32
store i32 %r308, i32* %r307
%r309 = lshr i256 %r305, 32
%r311 = getelementptr i32, i32* %r1, i32 7
%r312 = trunc i256 %r309 to i32
store i32 %r312, i32* %r311
ret void
}
define void @mcl_fp_montRedNF8L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3)
{
%r5 = getelementptr i32, i32* %r3, i32 -1
%r6 = load i32, i32* %r5
%r7 = load i32, i32* %r3
%r8 = zext i32 %r7 to i64
%r10 = getelementptr i32, i32* %r3, i32 1
%r11 = load i32, i32* %r10
%r12 = zext i32 %r11 to i64
%r13 = shl i64 %r12, 32
%r14 = or i64 %r8, %r13
%r15 = zext i64 %r14 to i96
%r17 = getelementptr i32, i32* %r3, i32 2
%r18 = load i32, i32* %r17
%r19 = zext i32 %r18 to i96
%r20 = shl i96 %r19, 64
%r21 = or i96 %r15, %r20
%r22 = zext i96 %r21 to i128
%r24 = getelementptr i32, i32* %r3, i32 3
%r25 = load i32, i32* %r24
%r26 = zext i32 %r25 to i128
%r27 = shl i128 %r26, 96
%r28 = or i128 %r22, %r27
%r29 = zext i128 %r28 to i160
%r31 = getelementptr i32, i32* %r3, i32 4
%r32 = load i32, i32* %r31
%r33 = zext i32 %r32 to i160
%r34 = shl i160 %r33, 128
%r35 = or i160 %r29, %r34
%r36 = zext i160 %r35 to i192
%r38 = getelementptr i32, i32* %r3, i32 5
%r39 = load i32, i32* %r38
%r40 = zext i32 %r39 to i192
%r41 = shl i192 %r40, 160
%r42 = or i192 %r36, %r41
%r43 = zext i192 %r42 to i224
%r45 = getelementptr i32, i32* %r3, i32 6
%r46 = load i32, i32* %r45
%r47 = zext i32 %r46 to i224
%r48 = shl i224 %r47, 192
%r49 = or i224 %r43, %r48
%r50 = zext i224 %r49 to i256
%r52 = getelementptr i32, i32* %r3, i32 7
%r53 = load i32, i32* %r52
%r54 = zext i32 %r53 to i256
%r55 = shl i256 %r54, 224
%r56 = or i256 %r50, %r55
%r57 = load i32, i32* %r2
%r58 = zext i32 %r57 to i64
%r60 = getelementptr i32, i32* %r2, i32 1
%r61 = load i32, i32* %r60
%r62 = zext i32 %r61 to i64
%r63 = shl i64 %r62, 32
%r64 = or i64 %r58, %r63
%r65 = zext i64 %r64 to i96
%r67 = getelementptr i32, i32* %r2, i32 2
%r68 = load i32, i32* %r67
%r69 = zext i32 %r68 to i96
%r70 = shl i96 %r69, 64
%r71 = or i96 %r65, %r70
%r72 = zext i96 %r71 to i128
%r74 = getelementptr i32, i32* %r2, i32 3
%r75 = load i32, i32* %r74
%r76 = zext i32 %r75 to i128
%r77 = shl i128 %r76, 96
%r78 = or i128 %r72, %r77
%r79 = zext i128 %r78 to i160
%r81 = getelementptr i32, i32* %r2, i32 4
%r82 = load i32, i32* %r81
%r83 = zext i32 %r82 to i160
%r84 = shl i160 %r83, 128
%r85 = or i160 %r79, %r84
%r86 = zext i160 %r85 to i192
%r88 = getelementptr i32, i32* %r2, i32 5
%r89 = load i32, i32* %r88
%r90 = zext i32 %r89 to i192
%r91 = shl i192 %r90, 160
%r92 = or i192 %r86, %r91
%r93 = zext i192 %r92 to i224
%r95 = getelementptr i32, i32* %r2, i32 6
%r96 = load i32, i32* %r95
%r97 = zext i32 %r96 to i224
%r98 = shl i224 %r97, 192
%r99 = or i224 %r93, %r98
%r100 = zext i224 %r99 to i256
%r102 = getelementptr i32, i32* %r2, i32 7
%r103 = load i32, i32* %r102
%r104 = zext i32 %r103 to i256
%r105 = shl i256 %r104, 224
%r106 = or i256 %r100, %r105
%r107 = trunc i256 %r106 to i32
%r108 = mul i32 %r107, %r6
%r109 = call i288 @mulPv256x32(i32* %r3, i32 %r108)
%r111 = getelementptr i32, i32* %r2, i32 8
%r112 = load i32, i32* %r111
%r113 = zext i32 %r112 to i288
%r114 = shl i288 %r113, 256
%r115 = zext i256 %r106 to i288
%r116 = or i288 %r114, %r115
%r117 = zext i288 %r116 to i320
%r118 = zext i288 %r109 to i320
%r119 = add i320 %r117, %r118
%r120 = lshr i320 %r119, 32
%r121 = trunc i320 %r120 to i288
%r122 = lshr i288 %r121, 256
%r123 = trunc i288 %r122 to i32
%r124 = trunc i288 %r121 to i256
%r125 = trunc i256 %r124 to i32
%r126 = mul i32 %r125, %r6
%r127 = call i288 @mulPv256x32(i32* %r3, i32 %r126)
%r128 = zext i32 %r123 to i288
%r129 = shl i288 %r128, 256
%r130 = add i288 %r127, %r129
%r132 = getelementptr i32, i32* %r2, i32 9
%r133 = load i32, i32* %r132
%r134 = zext i32 %r133 to i288
%r135 = shl i288 %r134, 256
%r136 = zext i256 %r124 to i288
%r137 = or i288 %r135, %r136
%r138 = zext i288 %r137 to i320
%r139 = zext i288 %r130 to i320
%r140 = add i320 %r138, %r139
%r141 = lshr i320 %r140, 32
%r142 = trunc i320 %r141 to i288
%r143 = lshr i288 %r142, 256
%r144 = trunc i288 %r143 to i32
%r145 = trunc i288 %r142 to i256
%r146 = trunc i256 %r145 to i32
%r147 = mul i32 %r146, %r6
%r148 = call i288 @mulPv256x32(i32* %r3, i32 %r147)
%r149 = zext i32 %r144 to i288
%r150 = shl i288 %r149, 256
%r151 = add i288 %r148, %r150
%r153 = getelementptr i32, i32* %r2, i32 10
%r154 = load i32, i32* %r153
%r155 = zext i32 %r154 to i288
%r156 = shl i288 %r155, 256
%r157 = zext i256 %r145 to i288
%r158 = or i288 %r156, %r157
%r159 = zext i288 %r158 to i320
%r160 = zext i288 %r151 to i320
%r161 = add i320 %r159, %r160
%r162 = lshr i320 %r161, 32
%r163 = trunc i320 %r162 to i288
%r164 = lshr i288 %r163, 256
%r165 = trunc i288 %r164 to i32
%r166 = trunc i288 %r163 to i256
%r167 = trunc i256 %r166 to i32
%r168 = mul i32 %r167, %r6
%r169 = call i288 @mulPv256x32(i32* %r3, i32 %r168)
%r170 = zext i32 %r165 to i288
%r171 = shl i288 %r170, 256
%r172 = add i288 %r169, %r171
%r174 = getelementptr i32, i32* %r2, i32 11
%r175 = load i32, i32* %r174
%r176 = zext i32 %r175 to i288
%r177 = shl i288 %r176, 256
%r178 = zext i256 %r166 to i288
%r179 = or i288 %r177, %r178
%r180 = zext i288 %r179 to i320
%r181 = zext i288 %r172 to i320
%r182 = add i320 %r180, %r181
%r183 = lshr i320 %r182, 32
%r184 = trunc i320 %r183 to i288
%r185 = lshr i288 %r184, 256
%r186 = trunc i288 %r185 to i32
%r187 = trunc i288 %r184 to i256
%r188 = trunc i256 %r187 to i32
%r189 = mul i32 %r188, %r6
%r190 = call i288 @mulPv256x32(i32* %r3, i32 %r189)
%r191 = zext i32 %r186 to i288
%r192 = shl i288 %r191, 256
%r193 = add i288 %r190, %r192
%r195 = getelementptr i32, i32* %r2, i32 12
%r196 = load i32, i32* %r195
%r197 = zext i32 %r196 to i288
%r198 = shl i288 %r197, 256
%r199 = zext i256 %r187 to i288
%r200 = or i288 %r198, %r199
%r201 = zext i288 %r200 to i320
%r202 = zext i288 %r193 to i320
%r203 = add i320 %r201, %r202
%r204 = lshr i320 %r203, 32
%r205 = trunc i320 %r204 to i288
%r206 = lshr i288 %r205, 256
%r207 = trunc i288 %r206 to i32
%r208 = trunc i288 %r205 to i256
%r209 = trunc i256 %r208 to i32
%r210 = mul i32 %r209, %r6
%r211 = call i288 @mulPv256x32(i32* %r3, i32 %r210)
%r212 = zext i32 %r207 to i288
%r213 = shl i288 %r212, 256
%r214 = add i288 %r211, %r213
%r216 = getelementptr i32, i32* %r2, i32 13
%r217 = load i32, i32* %r216
%r218 = zext i32 %r217 to i288
%r219 = shl i288 %r218, 256
%r220 = zext i256 %r208 to i288
%r221 = or i288 %r219, %r220
%r222 = zext i288 %r221 to i320
%r223 = zext i288 %r214 to i320
%r224 = add i320 %r222, %r223
%r225 = lshr i320 %r224, 32
%r226 = trunc i320 %r225 to i288
%r227 = lshr i288 %r226, 256
%r228 = trunc i288 %r227 to i32
%r229 = trunc i288 %r226 to i256
%r230 = trunc i256 %r229 to i32
%r231 = mul i32 %r230, %r6
%r232 = call i288 @mulPv256x32(i32* %r3, i32 %r231)
%r233 = zext i32 %r228 to i288
%r234 = shl i288 %r233, 256
%r235 = add i288 %r232, %r234
%r237 = getelementptr i32, i32* %r2, i32 14
%r238 = load i32, i32* %r237
%r239 = zext i32 %r238 to i288
%r240 = shl i288 %r239, 256
%r241 = zext i256 %r229 to i288
%r242 = or i288 %r240, %r241
%r243 = zext i288 %r242 to i320
%r244 = zext i288 %r235 to i320
%r245 = add i320 %r243, %r244
%r246 = lshr i320 %r245, 32
%r247 = trunc i320 %r246 to i288
%r248 = lshr i288 %r247, 256
%r249 = trunc i288 %r248 to i32
%r250 = trunc i288 %r247 to i256
%r251 = trunc i256 %r250 to i32
%r252 = mul i32 %r251, %r6
%r253 = call i288 @mulPv256x32(i32* %r3, i32 %r252)
%r254 = zext i32 %r249 to i288
%r255 = shl i288 %r254, 256
%r256 = add i288 %r253, %r255
%r258 = getelementptr i32, i32* %r2, i32 15
%r259 = load i32, i32* %r258
%r260 = zext i32 %r259 to i288
%r261 = shl i288 %r260, 256
%r262 = zext i256 %r250 to i288
%r263 = or i288 %r261, %r262
%r264 = zext i288 %r263 to i320
%r265 = zext i288 %r256 to i320
%r266 = add i320 %r264, %r265
%r267 = lshr i320 %r266, 32
%r268 = trunc i320 %r267 to i288
%r269 = lshr i288 %r268, 256
%r270 = trunc i288 %r269 to i32
%r271 = trunc i288 %r268 to i256
%r272 = sub i256 %r271, %r56
%r273 = lshr i256 %r272, 255
%r274 = trunc i256 %r273 to i1
%r275 = select i1 %r274, i256 %r271, i256 %r272
%r277 = getelementptr i32, i32* %r1, i32 0
%r278 = trunc i256 %r275 to i32
store i32 %r278, i32* %r277
%r279 = lshr i256 %r275, 32
%r281 = getelementptr i32, i32* %r1, i32 1
%r282 = trunc i256 %r279 to i32
store i32 %r282, i32* %r281
%r283 = lshr i256 %r279, 32
%r285 = getelementptr i32, i32* %r1, i32 2
%r286 = trunc i256 %r283 to i32
store i32 %r286, i32* %r285
%r287 = lshr i256 %r283, 32
%r289 = getelementptr i32, i32* %r1, i32 3
%r290 = trunc i256 %r287 to i32
store i32 %r290, i32* %r289
%r291 = lshr i256 %r287, 32
%r293 = getelementptr i32, i32* %r1, i32 4
%r294 = trunc i256 %r291 to i32
store i32 %r294, i32* %r293
%r295 = lshr i256 %r291, 32
%r297 = getelementptr i32, i32* %r1, i32 5
%r298 = trunc i256 %r295 to i32
store i32 %r298, i32* %r297
%r299 = lshr i256 %r295, 32
%r301 = getelementptr i32, i32* %r1, i32 6
%r302 = trunc i256 %r299 to i32
store i32 %r302, i32* %r301
%r303 = lshr i256 %r299, 32
%r305 = getelementptr i32, i32* %r1, i32 7
%r306 = trunc i256 %r303 to i32
store i32 %r306, i32* %r305
ret void
}
define i32 @mcl_fp_addPre8L(i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r3
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r3, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r3, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r3, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r3, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r3, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r3, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r3, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r56 = load i32, i32* %r4
%r57 = zext i32 %r56 to i64
%r59 = getelementptr i32, i32* %r4, i32 1
%r60 = load i32, i32* %r59
%r61 = zext i32 %r60 to i64
%r62 = shl i64 %r61, 32
%r63 = or i64 %r57, %r62
%r64 = zext i64 %r63 to i96
%r66 = getelementptr i32, i32* %r4, i32 2
%r67 = load i32, i32* %r66
%r68 = zext i32 %r67 to i96
%r69 = shl i96 %r68, 64
%r70 = or i96 %r64, %r69
%r71 = zext i96 %r70 to i128
%r73 = getelementptr i32, i32* %r4, i32 3
%r74 = load i32, i32* %r73
%r75 = zext i32 %r74 to i128
%r76 = shl i128 %r75, 96
%r77 = or i128 %r71, %r76
%r78 = zext i128 %r77 to i160
%r80 = getelementptr i32, i32* %r4, i32 4
%r81 = load i32, i32* %r80
%r82 = zext i32 %r81 to i160
%r83 = shl i160 %r82, 128
%r84 = or i160 %r78, %r83
%r85 = zext i160 %r84 to i192
%r87 = getelementptr i32, i32* %r4, i32 5
%r88 = load i32, i32* %r87
%r89 = zext i32 %r88 to i192
%r90 = shl i192 %r89, 160
%r91 = or i192 %r85, %r90
%r92 = zext i192 %r91 to i224
%r94 = getelementptr i32, i32* %r4, i32 6
%r95 = load i32, i32* %r94
%r96 = zext i32 %r95 to i224
%r97 = shl i224 %r96, 192
%r98 = or i224 %r92, %r97
%r99 = zext i224 %r98 to i256
%r101 = getelementptr i32, i32* %r4, i32 7
%r102 = load i32, i32* %r101
%r103 = zext i32 %r102 to i256
%r104 = shl i256 %r103, 224
%r105 = or i256 %r99, %r104
%r106 = zext i256 %r105 to i288
%r107 = add i288 %r55, %r106
%r108 = trunc i288 %r107 to i256
%r110 = getelementptr i32, i32* %r2, i32 0
%r111 = trunc i256 %r108 to i32
store i32 %r111, i32* %r110
%r112 = lshr i256 %r108, 32
%r114 = getelementptr i32, i32* %r2, i32 1
%r115 = trunc i256 %r112 to i32
store i32 %r115, i32* %r114
%r116 = lshr i256 %r112, 32
%r118 = getelementptr i32, i32* %r2, i32 2
%r119 = trunc i256 %r116 to i32
store i32 %r119, i32* %r118
%r120 = lshr i256 %r116, 32
%r122 = getelementptr i32, i32* %r2, i32 3
%r123 = trunc i256 %r120 to i32
store i32 %r123, i32* %r122
%r124 = lshr i256 %r120, 32
%r126 = getelementptr i32, i32* %r2, i32 4
%r127 = trunc i256 %r124 to i32
store i32 %r127, i32* %r126
%r128 = lshr i256 %r124, 32
%r130 = getelementptr i32, i32* %r2, i32 5
%r131 = trunc i256 %r128 to i32
store i32 %r131, i32* %r130
%r132 = lshr i256 %r128, 32
%r134 = getelementptr i32, i32* %r2, i32 6
%r135 = trunc i256 %r132 to i32
store i32 %r135, i32* %r134
%r136 = lshr i256 %r132, 32
%r138 = getelementptr i32, i32* %r2, i32 7
%r139 = trunc i256 %r136 to i32
store i32 %r139, i32* %r138
%r140 = lshr i288 %r107, 256
%r141 = trunc i288 %r140 to i32
ret i32 %r141
}
define i32 @mcl_fp_subPre8L(i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r3
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r3, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r3, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r3, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r3, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r3, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r3, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r3, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r56 = load i32, i32* %r4
%r57 = zext i32 %r56 to i64
%r59 = getelementptr i32, i32* %r4, i32 1
%r60 = load i32, i32* %r59
%r61 = zext i32 %r60 to i64
%r62 = shl i64 %r61, 32
%r63 = or i64 %r57, %r62
%r64 = zext i64 %r63 to i96
%r66 = getelementptr i32, i32* %r4, i32 2
%r67 = load i32, i32* %r66
%r68 = zext i32 %r67 to i96
%r69 = shl i96 %r68, 64
%r70 = or i96 %r64, %r69
%r71 = zext i96 %r70 to i128
%r73 = getelementptr i32, i32* %r4, i32 3
%r74 = load i32, i32* %r73
%r75 = zext i32 %r74 to i128
%r76 = shl i128 %r75, 96
%r77 = or i128 %r71, %r76
%r78 = zext i128 %r77 to i160
%r80 = getelementptr i32, i32* %r4, i32 4
%r81 = load i32, i32* %r80
%r82 = zext i32 %r81 to i160
%r83 = shl i160 %r82, 128
%r84 = or i160 %r78, %r83
%r85 = zext i160 %r84 to i192
%r87 = getelementptr i32, i32* %r4, i32 5
%r88 = load i32, i32* %r87
%r89 = zext i32 %r88 to i192
%r90 = shl i192 %r89, 160
%r91 = or i192 %r85, %r90
%r92 = zext i192 %r91 to i224
%r94 = getelementptr i32, i32* %r4, i32 6
%r95 = load i32, i32* %r94
%r96 = zext i32 %r95 to i224
%r97 = shl i224 %r96, 192
%r98 = or i224 %r92, %r97
%r99 = zext i224 %r98 to i256
%r101 = getelementptr i32, i32* %r4, i32 7
%r102 = load i32, i32* %r101
%r103 = zext i32 %r102 to i256
%r104 = shl i256 %r103, 224
%r105 = or i256 %r99, %r104
%r106 = zext i256 %r105 to i288
%r107 = sub i288 %r55, %r106
%r108 = trunc i288 %r107 to i256
%r110 = getelementptr i32, i32* %r2, i32 0
%r111 = trunc i256 %r108 to i32
store i32 %r111, i32* %r110
%r112 = lshr i256 %r108, 32
%r114 = getelementptr i32, i32* %r2, i32 1
%r115 = trunc i256 %r112 to i32
store i32 %r115, i32* %r114
%r116 = lshr i256 %r112, 32
%r118 = getelementptr i32, i32* %r2, i32 2
%r119 = trunc i256 %r116 to i32
store i32 %r119, i32* %r118
%r120 = lshr i256 %r116, 32
%r122 = getelementptr i32, i32* %r2, i32 3
%r123 = trunc i256 %r120 to i32
store i32 %r123, i32* %r122
%r124 = lshr i256 %r120, 32
%r126 = getelementptr i32, i32* %r2, i32 4
%r127 = trunc i256 %r124 to i32
store i32 %r127, i32* %r126
%r128 = lshr i256 %r124, 32
%r130 = getelementptr i32, i32* %r2, i32 5
%r131 = trunc i256 %r128 to i32
store i32 %r131, i32* %r130
%r132 = lshr i256 %r128, 32
%r134 = getelementptr i32, i32* %r2, i32 6
%r135 = trunc i256 %r132 to i32
store i32 %r135, i32* %r134
%r136 = lshr i256 %r132, 32
%r138 = getelementptr i32, i32* %r2, i32 7
%r139 = trunc i256 %r136 to i32
store i32 %r139, i32* %r138
%r141 = lshr i288 %r107, 256
%r142 = trunc i288 %r141 to i32
%r143 = and i32 %r142, 1
ret i32 %r143
}
define void @mcl_fp_shr1_8L(i32* noalias  %r1, i32* noalias  %r2)
{
%r3 = load i32, i32* %r2
%r4 = zext i32 %r3 to i64
%r6 = getelementptr i32, i32* %r2, i32 1
%r7 = load i32, i32* %r6
%r8 = zext i32 %r7 to i64
%r9 = shl i64 %r8, 32
%r10 = or i64 %r4, %r9
%r11 = zext i64 %r10 to i96
%r13 = getelementptr i32, i32* %r2, i32 2
%r14 = load i32, i32* %r13
%r15 = zext i32 %r14 to i96
%r16 = shl i96 %r15, 64
%r17 = or i96 %r11, %r16
%r18 = zext i96 %r17 to i128
%r20 = getelementptr i32, i32* %r2, i32 3
%r21 = load i32, i32* %r20
%r22 = zext i32 %r21 to i128
%r23 = shl i128 %r22, 96
%r24 = or i128 %r18, %r23
%r25 = zext i128 %r24 to i160
%r27 = getelementptr i32, i32* %r2, i32 4
%r28 = load i32, i32* %r27
%r29 = zext i32 %r28 to i160
%r30 = shl i160 %r29, 128
%r31 = or i160 %r25, %r30
%r32 = zext i160 %r31 to i192
%r34 = getelementptr i32, i32* %r2, i32 5
%r35 = load i32, i32* %r34
%r36 = zext i32 %r35 to i192
%r37 = shl i192 %r36, 160
%r38 = or i192 %r32, %r37
%r39 = zext i192 %r38 to i224
%r41 = getelementptr i32, i32* %r2, i32 6
%r42 = load i32, i32* %r41
%r43 = zext i32 %r42 to i224
%r44 = shl i224 %r43, 192
%r45 = or i224 %r39, %r44
%r46 = zext i224 %r45 to i256
%r48 = getelementptr i32, i32* %r2, i32 7
%r49 = load i32, i32* %r48
%r50 = zext i32 %r49 to i256
%r51 = shl i256 %r50, 224
%r52 = or i256 %r46, %r51
%r53 = lshr i256 %r52, 1
%r55 = getelementptr i32, i32* %r1, i32 0
%r56 = trunc i256 %r53 to i32
store i32 %r56, i32* %r55
%r57 = lshr i256 %r53, 32
%r59 = getelementptr i32, i32* %r1, i32 1
%r60 = trunc i256 %r57 to i32
store i32 %r60, i32* %r59
%r61 = lshr i256 %r57, 32
%r63 = getelementptr i32, i32* %r1, i32 2
%r64 = trunc i256 %r61 to i32
store i32 %r64, i32* %r63
%r65 = lshr i256 %r61, 32
%r67 = getelementptr i32, i32* %r1, i32 3
%r68 = trunc i256 %r65 to i32
store i32 %r68, i32* %r67
%r69 = lshr i256 %r65, 32
%r71 = getelementptr i32, i32* %r1, i32 4
%r72 = trunc i256 %r69 to i32
store i32 %r72, i32* %r71
%r73 = lshr i256 %r69, 32
%r75 = getelementptr i32, i32* %r1, i32 5
%r76 = trunc i256 %r73 to i32
store i32 %r76, i32* %r75
%r77 = lshr i256 %r73, 32
%r79 = getelementptr i32, i32* %r1, i32 6
%r80 = trunc i256 %r77 to i32
store i32 %r80, i32* %r79
%r81 = lshr i256 %r77, 32
%r83 = getelementptr i32, i32* %r1, i32 7
%r84 = trunc i256 %r81 to i32
store i32 %r84, i32* %r83
ret void
}
define void @mcl_fp_add8L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = load i32, i32* %r3
%r56 = zext i32 %r55 to i64
%r58 = getelementptr i32, i32* %r3, i32 1
%r59 = load i32, i32* %r58
%r60 = zext i32 %r59 to i64
%r61 = shl i64 %r60, 32
%r62 = or i64 %r56, %r61
%r63 = zext i64 %r62 to i96
%r65 = getelementptr i32, i32* %r3, i32 2
%r66 = load i32, i32* %r65
%r67 = zext i32 %r66 to i96
%r68 = shl i96 %r67, 64
%r69 = or i96 %r63, %r68
%r70 = zext i96 %r69 to i128
%r72 = getelementptr i32, i32* %r3, i32 3
%r73 = load i32, i32* %r72
%r74 = zext i32 %r73 to i128
%r75 = shl i128 %r74, 96
%r76 = or i128 %r70, %r75
%r77 = zext i128 %r76 to i160
%r79 = getelementptr i32, i32* %r3, i32 4
%r80 = load i32, i32* %r79
%r81 = zext i32 %r80 to i160
%r82 = shl i160 %r81, 128
%r83 = or i160 %r77, %r82
%r84 = zext i160 %r83 to i192
%r86 = getelementptr i32, i32* %r3, i32 5
%r87 = load i32, i32* %r86
%r88 = zext i32 %r87 to i192
%r89 = shl i192 %r88, 160
%r90 = or i192 %r84, %r89
%r91 = zext i192 %r90 to i224
%r93 = getelementptr i32, i32* %r3, i32 6
%r94 = load i32, i32* %r93
%r95 = zext i32 %r94 to i224
%r96 = shl i224 %r95, 192
%r97 = or i224 %r91, %r96
%r98 = zext i224 %r97 to i256
%r100 = getelementptr i32, i32* %r3, i32 7
%r101 = load i32, i32* %r100
%r102 = zext i32 %r101 to i256
%r103 = shl i256 %r102, 224
%r104 = or i256 %r98, %r103
%r105 = zext i256 %r54 to i288
%r106 = zext i256 %r104 to i288
%r107 = add i288 %r105, %r106
%r108 = load i32, i32* %r4
%r109 = zext i32 %r108 to i64
%r111 = getelementptr i32, i32* %r4, i32 1
%r112 = load i32, i32* %r111
%r113 = zext i32 %r112 to i64
%r114 = shl i64 %r113, 32
%r115 = or i64 %r109, %r114
%r116 = zext i64 %r115 to i96
%r118 = getelementptr i32, i32* %r4, i32 2
%r119 = load i32, i32* %r118
%r120 = zext i32 %r119 to i96
%r121 = shl i96 %r120, 64
%r122 = or i96 %r116, %r121
%r123 = zext i96 %r122 to i128
%r125 = getelementptr i32, i32* %r4, i32 3
%r126 = load i32, i32* %r125
%r127 = zext i32 %r126 to i128
%r128 = shl i128 %r127, 96
%r129 = or i128 %r123, %r128
%r130 = zext i128 %r129 to i160
%r132 = getelementptr i32, i32* %r4, i32 4
%r133 = load i32, i32* %r132
%r134 = zext i32 %r133 to i160
%r135 = shl i160 %r134, 128
%r136 = or i160 %r130, %r135
%r137 = zext i160 %r136 to i192
%r139 = getelementptr i32, i32* %r4, i32 5
%r140 = load i32, i32* %r139
%r141 = zext i32 %r140 to i192
%r142 = shl i192 %r141, 160
%r143 = or i192 %r137, %r142
%r144 = zext i192 %r143 to i224
%r146 = getelementptr i32, i32* %r4, i32 6
%r147 = load i32, i32* %r146
%r148 = zext i32 %r147 to i224
%r149 = shl i224 %r148, 192
%r150 = or i224 %r144, %r149
%r151 = zext i224 %r150 to i256
%r153 = getelementptr i32, i32* %r4, i32 7
%r154 = load i32, i32* %r153
%r155 = zext i32 %r154 to i256
%r156 = shl i256 %r155, 224
%r157 = or i256 %r151, %r156
%r158 = zext i256 %r157 to i288
%r159 = sub i288 %r107, %r158
%r160 = lshr i288 %r159, 256
%r161 = trunc i288 %r160 to i1
%r162 = select i1 %r161, i288 %r107, i288 %r159
%r163 = trunc i288 %r162 to i256
%r165 = getelementptr i32, i32* %r1, i32 0
%r166 = trunc i256 %r163 to i32
store i32 %r166, i32* %r165
%r167 = lshr i256 %r163, 32
%r169 = getelementptr i32, i32* %r1, i32 1
%r170 = trunc i256 %r167 to i32
store i32 %r170, i32* %r169
%r171 = lshr i256 %r167, 32
%r173 = getelementptr i32, i32* %r1, i32 2
%r174 = trunc i256 %r171 to i32
store i32 %r174, i32* %r173
%r175 = lshr i256 %r171, 32
%r177 = getelementptr i32, i32* %r1, i32 3
%r178 = trunc i256 %r175 to i32
store i32 %r178, i32* %r177
%r179 = lshr i256 %r175, 32
%r181 = getelementptr i32, i32* %r1, i32 4
%r182 = trunc i256 %r179 to i32
store i32 %r182, i32* %r181
%r183 = lshr i256 %r179, 32
%r185 = getelementptr i32, i32* %r1, i32 5
%r186 = trunc i256 %r183 to i32
store i32 %r186, i32* %r185
%r187 = lshr i256 %r183, 32
%r189 = getelementptr i32, i32* %r1, i32 6
%r190 = trunc i256 %r187 to i32
store i32 %r190, i32* %r189
%r191 = lshr i256 %r187, 32
%r193 = getelementptr i32, i32* %r1, i32 7
%r194 = trunc i256 %r191 to i32
store i32 %r194, i32* %r193
ret void
}
define void @mcl_fp_addNF8L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = load i32, i32* %r3
%r56 = zext i32 %r55 to i64
%r58 = getelementptr i32, i32* %r3, i32 1
%r59 = load i32, i32* %r58
%r60 = zext i32 %r59 to i64
%r61 = shl i64 %r60, 32
%r62 = or i64 %r56, %r61
%r63 = zext i64 %r62 to i96
%r65 = getelementptr i32, i32* %r3, i32 2
%r66 = load i32, i32* %r65
%r67 = zext i32 %r66 to i96
%r68 = shl i96 %r67, 64
%r69 = or i96 %r63, %r68
%r70 = zext i96 %r69 to i128
%r72 = getelementptr i32, i32* %r3, i32 3
%r73 = load i32, i32* %r72
%r74 = zext i32 %r73 to i128
%r75 = shl i128 %r74, 96
%r76 = or i128 %r70, %r75
%r77 = zext i128 %r76 to i160
%r79 = getelementptr i32, i32* %r3, i32 4
%r80 = load i32, i32* %r79
%r81 = zext i32 %r80 to i160
%r82 = shl i160 %r81, 128
%r83 = or i160 %r77, %r82
%r84 = zext i160 %r83 to i192
%r86 = getelementptr i32, i32* %r3, i32 5
%r87 = load i32, i32* %r86
%r88 = zext i32 %r87 to i192
%r89 = shl i192 %r88, 160
%r90 = or i192 %r84, %r89
%r91 = zext i192 %r90 to i224
%r93 = getelementptr i32, i32* %r3, i32 6
%r94 = load i32, i32* %r93
%r95 = zext i32 %r94 to i224
%r96 = shl i224 %r95, 192
%r97 = or i224 %r91, %r96
%r98 = zext i224 %r97 to i256
%r100 = getelementptr i32, i32* %r3, i32 7
%r101 = load i32, i32* %r100
%r102 = zext i32 %r101 to i256
%r103 = shl i256 %r102, 224
%r104 = or i256 %r98, %r103
%r105 = add i256 %r54, %r104
%r106 = load i32, i32* %r4
%r107 = zext i32 %r106 to i64
%r109 = getelementptr i32, i32* %r4, i32 1
%r110 = load i32, i32* %r109
%r111 = zext i32 %r110 to i64
%r112 = shl i64 %r111, 32
%r113 = or i64 %r107, %r112
%r114 = zext i64 %r113 to i96
%r116 = getelementptr i32, i32* %r4, i32 2
%r117 = load i32, i32* %r116
%r118 = zext i32 %r117 to i96
%r119 = shl i96 %r118, 64
%r120 = or i96 %r114, %r119
%r121 = zext i96 %r120 to i128
%r123 = getelementptr i32, i32* %r4, i32 3
%r124 = load i32, i32* %r123
%r125 = zext i32 %r124 to i128
%r126 = shl i128 %r125, 96
%r127 = or i128 %r121, %r126
%r128 = zext i128 %r127 to i160
%r130 = getelementptr i32, i32* %r4, i32 4
%r131 = load i32, i32* %r130
%r132 = zext i32 %r131 to i160
%r133 = shl i160 %r132, 128
%r134 = or i160 %r128, %r133
%r135 = zext i160 %r134 to i192
%r137 = getelementptr i32, i32* %r4, i32 5
%r138 = load i32, i32* %r137
%r139 = zext i32 %r138 to i192
%r140 = shl i192 %r139, 160
%r141 = or i192 %r135, %r140
%r142 = zext i192 %r141 to i224
%r144 = getelementptr i32, i32* %r4, i32 6
%r145 = load i32, i32* %r144
%r146 = zext i32 %r145 to i224
%r147 = shl i224 %r146, 192
%r148 = or i224 %r142, %r147
%r149 = zext i224 %r148 to i256
%r151 = getelementptr i32, i32* %r4, i32 7
%r152 = load i32, i32* %r151
%r153 = zext i32 %r152 to i256
%r154 = shl i256 %r153, 224
%r155 = or i256 %r149, %r154
%r156 = sub i256 %r105, %r155
%r157 = lshr i256 %r156, 255
%r158 = trunc i256 %r157 to i1
%r159 = select i1 %r158, i256 %r105, i256 %r156
%r161 = getelementptr i32, i32* %r1, i32 0
%r162 = trunc i256 %r159 to i32
store i32 %r162, i32* %r161
%r163 = lshr i256 %r159, 32
%r165 = getelementptr i32, i32* %r1, i32 1
%r166 = trunc i256 %r163 to i32
store i32 %r166, i32* %r165
%r167 = lshr i256 %r163, 32
%r169 = getelementptr i32, i32* %r1, i32 2
%r170 = trunc i256 %r167 to i32
store i32 %r170, i32* %r169
%r171 = lshr i256 %r167, 32
%r173 = getelementptr i32, i32* %r1, i32 3
%r174 = trunc i256 %r171 to i32
store i32 %r174, i32* %r173
%r175 = lshr i256 %r171, 32
%r177 = getelementptr i32, i32* %r1, i32 4
%r178 = trunc i256 %r175 to i32
store i32 %r178, i32* %r177
%r179 = lshr i256 %r175, 32
%r181 = getelementptr i32, i32* %r1, i32 5
%r182 = trunc i256 %r179 to i32
store i32 %r182, i32* %r181
%r183 = lshr i256 %r179, 32
%r185 = getelementptr i32, i32* %r1, i32 6
%r186 = trunc i256 %r183 to i32
store i32 %r186, i32* %r185
%r187 = lshr i256 %r183, 32
%r189 = getelementptr i32, i32* %r1, i32 7
%r190 = trunc i256 %r187 to i32
store i32 %r190, i32* %r189
ret void
}
define void @mcl_fp_sub8L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = load i32, i32* %r3
%r56 = zext i32 %r55 to i64
%r58 = getelementptr i32, i32* %r3, i32 1
%r59 = load i32, i32* %r58
%r60 = zext i32 %r59 to i64
%r61 = shl i64 %r60, 32
%r62 = or i64 %r56, %r61
%r63 = zext i64 %r62 to i96
%r65 = getelementptr i32, i32* %r3, i32 2
%r66 = load i32, i32* %r65
%r67 = zext i32 %r66 to i96
%r68 = shl i96 %r67, 64
%r69 = or i96 %r63, %r68
%r70 = zext i96 %r69 to i128
%r72 = getelementptr i32, i32* %r3, i32 3
%r73 = load i32, i32* %r72
%r74 = zext i32 %r73 to i128
%r75 = shl i128 %r74, 96
%r76 = or i128 %r70, %r75
%r77 = zext i128 %r76 to i160
%r79 = getelementptr i32, i32* %r3, i32 4
%r80 = load i32, i32* %r79
%r81 = zext i32 %r80 to i160
%r82 = shl i160 %r81, 128
%r83 = or i160 %r77, %r82
%r84 = zext i160 %r83 to i192
%r86 = getelementptr i32, i32* %r3, i32 5
%r87 = load i32, i32* %r86
%r88 = zext i32 %r87 to i192
%r89 = shl i192 %r88, 160
%r90 = or i192 %r84, %r89
%r91 = zext i192 %r90 to i224
%r93 = getelementptr i32, i32* %r3, i32 6
%r94 = load i32, i32* %r93
%r95 = zext i32 %r94 to i224
%r96 = shl i224 %r95, 192
%r97 = or i224 %r91, %r96
%r98 = zext i224 %r97 to i256
%r100 = getelementptr i32, i32* %r3, i32 7
%r101 = load i32, i32* %r100
%r102 = zext i32 %r101 to i256
%r103 = shl i256 %r102, 224
%r104 = or i256 %r98, %r103
%r105 = zext i256 %r54 to i257
%r106 = zext i256 %r104 to i257
%r107 = sub i257 %r105, %r106
%r108 = lshr i257 %r107, 256
%r109 = trunc i257 %r108 to i1
%r110 = trunc i257 %r107 to i256
%r111 = load i32, i32* %r4
%r112 = zext i32 %r111 to i64
%r114 = getelementptr i32, i32* %r4, i32 1
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i64
%r117 = shl i64 %r116, 32
%r118 = or i64 %r112, %r117
%r119 = zext i64 %r118 to i96
%r121 = getelementptr i32, i32* %r4, i32 2
%r122 = load i32, i32* %r121
%r123 = zext i32 %r122 to i96
%r124 = shl i96 %r123, 64
%r125 = or i96 %r119, %r124
%r126 = zext i96 %r125 to i128
%r128 = getelementptr i32, i32* %r4, i32 3
%r129 = load i32, i32* %r128
%r130 = zext i32 %r129 to i128
%r131 = shl i128 %r130, 96
%r132 = or i128 %r126, %r131
%r133 = zext i128 %r132 to i160
%r135 = getelementptr i32, i32* %r4, i32 4
%r136 = load i32, i32* %r135
%r137 = zext i32 %r136 to i160
%r138 = shl i160 %r137, 128
%r139 = or i160 %r133, %r138
%r140 = zext i160 %r139 to i192
%r142 = getelementptr i32, i32* %r4, i32 5
%r143 = load i32, i32* %r142
%r144 = zext i32 %r143 to i192
%r145 = shl i192 %r144, 160
%r146 = or i192 %r140, %r145
%r147 = zext i192 %r146 to i224
%r149 = getelementptr i32, i32* %r4, i32 6
%r150 = load i32, i32* %r149
%r151 = zext i32 %r150 to i224
%r152 = shl i224 %r151, 192
%r153 = or i224 %r147, %r152
%r154 = zext i224 %r153 to i256
%r156 = getelementptr i32, i32* %r4, i32 7
%r157 = load i32, i32* %r156
%r158 = zext i32 %r157 to i256
%r159 = shl i256 %r158, 224
%r160 = or i256 %r154, %r159
%r162 = select i1 %r109, i256 %r160, i256 0
%r163 = add i256 %r110, %r162
%r165 = getelementptr i32, i32* %r1, i32 0
%r166 = trunc i256 %r163 to i32
store i32 %r166, i32* %r165
%r167 = lshr i256 %r163, 32
%r169 = getelementptr i32, i32* %r1, i32 1
%r170 = trunc i256 %r167 to i32
store i32 %r170, i32* %r169
%r171 = lshr i256 %r167, 32
%r173 = getelementptr i32, i32* %r1, i32 2
%r174 = trunc i256 %r171 to i32
store i32 %r174, i32* %r173
%r175 = lshr i256 %r171, 32
%r177 = getelementptr i32, i32* %r1, i32 3
%r178 = trunc i256 %r175 to i32
store i32 %r178, i32* %r177
%r179 = lshr i256 %r175, 32
%r181 = getelementptr i32, i32* %r1, i32 4
%r182 = trunc i256 %r179 to i32
store i32 %r182, i32* %r181
%r183 = lshr i256 %r179, 32
%r185 = getelementptr i32, i32* %r1, i32 5
%r186 = trunc i256 %r183 to i32
store i32 %r186, i32* %r185
%r187 = lshr i256 %r183, 32
%r189 = getelementptr i32, i32* %r1, i32 6
%r190 = trunc i256 %r187 to i32
store i32 %r190, i32* %r189
%r191 = lshr i256 %r187, 32
%r193 = getelementptr i32, i32* %r1, i32 7
%r194 = trunc i256 %r191 to i32
store i32 %r194, i32* %r193
ret void
}
define void @mcl_fp_subNF8L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = load i32, i32* %r3
%r56 = zext i32 %r55 to i64
%r58 = getelementptr i32, i32* %r3, i32 1
%r59 = load i32, i32* %r58
%r60 = zext i32 %r59 to i64
%r61 = shl i64 %r60, 32
%r62 = or i64 %r56, %r61
%r63 = zext i64 %r62 to i96
%r65 = getelementptr i32, i32* %r3, i32 2
%r66 = load i32, i32* %r65
%r67 = zext i32 %r66 to i96
%r68 = shl i96 %r67, 64
%r69 = or i96 %r63, %r68
%r70 = zext i96 %r69 to i128
%r72 = getelementptr i32, i32* %r3, i32 3
%r73 = load i32, i32* %r72
%r74 = zext i32 %r73 to i128
%r75 = shl i128 %r74, 96
%r76 = or i128 %r70, %r75
%r77 = zext i128 %r76 to i160
%r79 = getelementptr i32, i32* %r3, i32 4
%r80 = load i32, i32* %r79
%r81 = zext i32 %r80 to i160
%r82 = shl i160 %r81, 128
%r83 = or i160 %r77, %r82
%r84 = zext i160 %r83 to i192
%r86 = getelementptr i32, i32* %r3, i32 5
%r87 = load i32, i32* %r86
%r88 = zext i32 %r87 to i192
%r89 = shl i192 %r88, 160
%r90 = or i192 %r84, %r89
%r91 = zext i192 %r90 to i224
%r93 = getelementptr i32, i32* %r3, i32 6
%r94 = load i32, i32* %r93
%r95 = zext i32 %r94 to i224
%r96 = shl i224 %r95, 192
%r97 = or i224 %r91, %r96
%r98 = zext i224 %r97 to i256
%r100 = getelementptr i32, i32* %r3, i32 7
%r101 = load i32, i32* %r100
%r102 = zext i32 %r101 to i256
%r103 = shl i256 %r102, 224
%r104 = or i256 %r98, %r103
%r105 = sub i256 %r54, %r104
%r106 = lshr i256 %r105, 255
%r107 = trunc i256 %r106 to i1
%r108 = load i32, i32* %r4
%r109 = zext i32 %r108 to i64
%r111 = getelementptr i32, i32* %r4, i32 1
%r112 = load i32, i32* %r111
%r113 = zext i32 %r112 to i64
%r114 = shl i64 %r113, 32
%r115 = or i64 %r109, %r114
%r116 = zext i64 %r115 to i96
%r118 = getelementptr i32, i32* %r4, i32 2
%r119 = load i32, i32* %r118
%r120 = zext i32 %r119 to i96
%r121 = shl i96 %r120, 64
%r122 = or i96 %r116, %r121
%r123 = zext i96 %r122 to i128
%r125 = getelementptr i32, i32* %r4, i32 3
%r126 = load i32, i32* %r125
%r127 = zext i32 %r126 to i128
%r128 = shl i128 %r127, 96
%r129 = or i128 %r123, %r128
%r130 = zext i128 %r129 to i160
%r132 = getelementptr i32, i32* %r4, i32 4
%r133 = load i32, i32* %r132
%r134 = zext i32 %r133 to i160
%r135 = shl i160 %r134, 128
%r136 = or i160 %r130, %r135
%r137 = zext i160 %r136 to i192
%r139 = getelementptr i32, i32* %r4, i32 5
%r140 = load i32, i32* %r139
%r141 = zext i32 %r140 to i192
%r142 = shl i192 %r141, 160
%r143 = or i192 %r137, %r142
%r144 = zext i192 %r143 to i224
%r146 = getelementptr i32, i32* %r4, i32 6
%r147 = load i32, i32* %r146
%r148 = zext i32 %r147 to i224
%r149 = shl i224 %r148, 192
%r150 = or i224 %r144, %r149
%r151 = zext i224 %r150 to i256
%r153 = getelementptr i32, i32* %r4, i32 7
%r154 = load i32, i32* %r153
%r155 = zext i32 %r154 to i256
%r156 = shl i256 %r155, 224
%r157 = or i256 %r151, %r156
%r159 = select i1 %r107, i256 %r157, i256 0
%r160 = add i256 %r105, %r159
%r162 = getelementptr i32, i32* %r1, i32 0
%r163 = trunc i256 %r160 to i32
store i32 %r163, i32* %r162
%r164 = lshr i256 %r160, 32
%r166 = getelementptr i32, i32* %r1, i32 1
%r167 = trunc i256 %r164 to i32
store i32 %r167, i32* %r166
%r168 = lshr i256 %r164, 32
%r170 = getelementptr i32, i32* %r1, i32 2
%r171 = trunc i256 %r168 to i32
store i32 %r171, i32* %r170
%r172 = lshr i256 %r168, 32
%r174 = getelementptr i32, i32* %r1, i32 3
%r175 = trunc i256 %r172 to i32
store i32 %r175, i32* %r174
%r176 = lshr i256 %r172, 32
%r178 = getelementptr i32, i32* %r1, i32 4
%r179 = trunc i256 %r176 to i32
store i32 %r179, i32* %r178
%r180 = lshr i256 %r176, 32
%r182 = getelementptr i32, i32* %r1, i32 5
%r183 = trunc i256 %r180 to i32
store i32 %r183, i32* %r182
%r184 = lshr i256 %r180, 32
%r186 = getelementptr i32, i32* %r1, i32 6
%r187 = trunc i256 %r184 to i32
store i32 %r187, i32* %r186
%r188 = lshr i256 %r184, 32
%r190 = getelementptr i32, i32* %r1, i32 7
%r191 = trunc i256 %r188 to i32
store i32 %r191, i32* %r190
ret void
}
define void @mcl_fpDbl_add8L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r2, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r2, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r2, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r2, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = zext i384 %r82 to i416
%r85 = getelementptr i32, i32* %r2, i32 12
%r86 = load i32, i32* %r85
%r87 = zext i32 %r86 to i416
%r88 = shl i416 %r87, 384
%r89 = or i416 %r83, %r88
%r90 = zext i416 %r89 to i448
%r92 = getelementptr i32, i32* %r2, i32 13
%r93 = load i32, i32* %r92
%r94 = zext i32 %r93 to i448
%r95 = shl i448 %r94, 416
%r96 = or i448 %r90, %r95
%r97 = zext i448 %r96 to i480
%r99 = getelementptr i32, i32* %r2, i32 14
%r100 = load i32, i32* %r99
%r101 = zext i32 %r100 to i480
%r102 = shl i480 %r101, 448
%r103 = or i480 %r97, %r102
%r104 = zext i480 %r103 to i512
%r106 = getelementptr i32, i32* %r2, i32 15
%r107 = load i32, i32* %r106
%r108 = zext i32 %r107 to i512
%r109 = shl i512 %r108, 480
%r110 = or i512 %r104, %r109
%r111 = load i32, i32* %r3
%r112 = zext i32 %r111 to i64
%r114 = getelementptr i32, i32* %r3, i32 1
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i64
%r117 = shl i64 %r116, 32
%r118 = or i64 %r112, %r117
%r119 = zext i64 %r118 to i96
%r121 = getelementptr i32, i32* %r3, i32 2
%r122 = load i32, i32* %r121
%r123 = zext i32 %r122 to i96
%r124 = shl i96 %r123, 64
%r125 = or i96 %r119, %r124
%r126 = zext i96 %r125 to i128
%r128 = getelementptr i32, i32* %r3, i32 3
%r129 = load i32, i32* %r128
%r130 = zext i32 %r129 to i128
%r131 = shl i128 %r130, 96
%r132 = or i128 %r126, %r131
%r133 = zext i128 %r132 to i160
%r135 = getelementptr i32, i32* %r3, i32 4
%r136 = load i32, i32* %r135
%r137 = zext i32 %r136 to i160
%r138 = shl i160 %r137, 128
%r139 = or i160 %r133, %r138
%r140 = zext i160 %r139 to i192
%r142 = getelementptr i32, i32* %r3, i32 5
%r143 = load i32, i32* %r142
%r144 = zext i32 %r143 to i192
%r145 = shl i192 %r144, 160
%r146 = or i192 %r140, %r145
%r147 = zext i192 %r146 to i224
%r149 = getelementptr i32, i32* %r3, i32 6
%r150 = load i32, i32* %r149
%r151 = zext i32 %r150 to i224
%r152 = shl i224 %r151, 192
%r153 = or i224 %r147, %r152
%r154 = zext i224 %r153 to i256
%r156 = getelementptr i32, i32* %r3, i32 7
%r157 = load i32, i32* %r156
%r158 = zext i32 %r157 to i256
%r159 = shl i256 %r158, 224
%r160 = or i256 %r154, %r159
%r161 = zext i256 %r160 to i288
%r163 = getelementptr i32, i32* %r3, i32 8
%r164 = load i32, i32* %r163
%r165 = zext i32 %r164 to i288
%r166 = shl i288 %r165, 256
%r167 = or i288 %r161, %r166
%r168 = zext i288 %r167 to i320
%r170 = getelementptr i32, i32* %r3, i32 9
%r171 = load i32, i32* %r170
%r172 = zext i32 %r171 to i320
%r173 = shl i320 %r172, 288
%r174 = or i320 %r168, %r173
%r175 = zext i320 %r174 to i352
%r177 = getelementptr i32, i32* %r3, i32 10
%r178 = load i32, i32* %r177
%r179 = zext i32 %r178 to i352
%r180 = shl i352 %r179, 320
%r181 = or i352 %r175, %r180
%r182 = zext i352 %r181 to i384
%r184 = getelementptr i32, i32* %r3, i32 11
%r185 = load i32, i32* %r184
%r186 = zext i32 %r185 to i384
%r187 = shl i384 %r186, 352
%r188 = or i384 %r182, %r187
%r189 = zext i384 %r188 to i416
%r191 = getelementptr i32, i32* %r3, i32 12
%r192 = load i32, i32* %r191
%r193 = zext i32 %r192 to i416
%r194 = shl i416 %r193, 384
%r195 = or i416 %r189, %r194
%r196 = zext i416 %r195 to i448
%r198 = getelementptr i32, i32* %r3, i32 13
%r199 = load i32, i32* %r198
%r200 = zext i32 %r199 to i448
%r201 = shl i448 %r200, 416
%r202 = or i448 %r196, %r201
%r203 = zext i448 %r202 to i480
%r205 = getelementptr i32, i32* %r3, i32 14
%r206 = load i32, i32* %r205
%r207 = zext i32 %r206 to i480
%r208 = shl i480 %r207, 448
%r209 = or i480 %r203, %r208
%r210 = zext i480 %r209 to i512
%r212 = getelementptr i32, i32* %r3, i32 15
%r213 = load i32, i32* %r212
%r214 = zext i32 %r213 to i512
%r215 = shl i512 %r214, 480
%r216 = or i512 %r210, %r215
%r217 = zext i512 %r110 to i544
%r218 = zext i512 %r216 to i544
%r219 = add i544 %r217, %r218
%r220 = trunc i544 %r219 to i256
%r222 = getelementptr i32, i32* %r1, i32 0
%r223 = trunc i256 %r220 to i32
store i32 %r223, i32* %r222
%r224 = lshr i256 %r220, 32
%r226 = getelementptr i32, i32* %r1, i32 1
%r227 = trunc i256 %r224 to i32
store i32 %r227, i32* %r226
%r228 = lshr i256 %r224, 32
%r230 = getelementptr i32, i32* %r1, i32 2
%r231 = trunc i256 %r228 to i32
store i32 %r231, i32* %r230
%r232 = lshr i256 %r228, 32
%r234 = getelementptr i32, i32* %r1, i32 3
%r235 = trunc i256 %r232 to i32
store i32 %r235, i32* %r234
%r236 = lshr i256 %r232, 32
%r238 = getelementptr i32, i32* %r1, i32 4
%r239 = trunc i256 %r236 to i32
store i32 %r239, i32* %r238
%r240 = lshr i256 %r236, 32
%r242 = getelementptr i32, i32* %r1, i32 5
%r243 = trunc i256 %r240 to i32
store i32 %r243, i32* %r242
%r244 = lshr i256 %r240, 32
%r246 = getelementptr i32, i32* %r1, i32 6
%r247 = trunc i256 %r244 to i32
store i32 %r247, i32* %r246
%r248 = lshr i256 %r244, 32
%r250 = getelementptr i32, i32* %r1, i32 7
%r251 = trunc i256 %r248 to i32
store i32 %r251, i32* %r250
%r252 = lshr i544 %r219, 256
%r253 = trunc i544 %r252 to i288
%r254 = load i32, i32* %r4
%r255 = zext i32 %r254 to i64
%r257 = getelementptr i32, i32* %r4, i32 1
%r258 = load i32, i32* %r257
%r259 = zext i32 %r258 to i64
%r260 = shl i64 %r259, 32
%r261 = or i64 %r255, %r260
%r262 = zext i64 %r261 to i96
%r264 = getelementptr i32, i32* %r4, i32 2
%r265 = load i32, i32* %r264
%r266 = zext i32 %r265 to i96
%r267 = shl i96 %r266, 64
%r268 = or i96 %r262, %r267
%r269 = zext i96 %r268 to i128
%r271 = getelementptr i32, i32* %r4, i32 3
%r272 = load i32, i32* %r271
%r273 = zext i32 %r272 to i128
%r274 = shl i128 %r273, 96
%r275 = or i128 %r269, %r274
%r276 = zext i128 %r275 to i160
%r278 = getelementptr i32, i32* %r4, i32 4
%r279 = load i32, i32* %r278
%r280 = zext i32 %r279 to i160
%r281 = shl i160 %r280, 128
%r282 = or i160 %r276, %r281
%r283 = zext i160 %r282 to i192
%r285 = getelementptr i32, i32* %r4, i32 5
%r286 = load i32, i32* %r285
%r287 = zext i32 %r286 to i192
%r288 = shl i192 %r287, 160
%r289 = or i192 %r283, %r288
%r290 = zext i192 %r289 to i224
%r292 = getelementptr i32, i32* %r4, i32 6
%r293 = load i32, i32* %r292
%r294 = zext i32 %r293 to i224
%r295 = shl i224 %r294, 192
%r296 = or i224 %r290, %r295
%r297 = zext i224 %r296 to i256
%r299 = getelementptr i32, i32* %r4, i32 7
%r300 = load i32, i32* %r299
%r301 = zext i32 %r300 to i256
%r302 = shl i256 %r301, 224
%r303 = or i256 %r297, %r302
%r304 = zext i256 %r303 to i288
%r305 = sub i288 %r253, %r304
%r306 = lshr i288 %r305, 256
%r307 = trunc i288 %r306 to i1
%r308 = select i1 %r307, i288 %r253, i288 %r305
%r309 = trunc i288 %r308 to i256
%r311 = getelementptr i32, i32* %r1, i32 8
%r313 = getelementptr i32, i32* %r311, i32 0
%r314 = trunc i256 %r309 to i32
store i32 %r314, i32* %r313
%r315 = lshr i256 %r309, 32
%r317 = getelementptr i32, i32* %r311, i32 1
%r318 = trunc i256 %r315 to i32
store i32 %r318, i32* %r317
%r319 = lshr i256 %r315, 32
%r321 = getelementptr i32, i32* %r311, i32 2
%r322 = trunc i256 %r319 to i32
store i32 %r322, i32* %r321
%r323 = lshr i256 %r319, 32
%r325 = getelementptr i32, i32* %r311, i32 3
%r326 = trunc i256 %r323 to i32
store i32 %r326, i32* %r325
%r327 = lshr i256 %r323, 32
%r329 = getelementptr i32, i32* %r311, i32 4
%r330 = trunc i256 %r327 to i32
store i32 %r330, i32* %r329
%r331 = lshr i256 %r327, 32
%r333 = getelementptr i32, i32* %r311, i32 5
%r334 = trunc i256 %r331 to i32
store i32 %r334, i32* %r333
%r335 = lshr i256 %r331, 32
%r337 = getelementptr i32, i32* %r311, i32 6
%r338 = trunc i256 %r335 to i32
store i32 %r338, i32* %r337
%r339 = lshr i256 %r335, 32
%r341 = getelementptr i32, i32* %r311, i32 7
%r342 = trunc i256 %r339 to i32
store i32 %r342, i32* %r341
ret void
}
define void @mcl_fpDbl_sub8L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r2, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r2, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r2, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r2, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = zext i384 %r82 to i416
%r85 = getelementptr i32, i32* %r2, i32 12
%r86 = load i32, i32* %r85
%r87 = zext i32 %r86 to i416
%r88 = shl i416 %r87, 384
%r89 = or i416 %r83, %r88
%r90 = zext i416 %r89 to i448
%r92 = getelementptr i32, i32* %r2, i32 13
%r93 = load i32, i32* %r92
%r94 = zext i32 %r93 to i448
%r95 = shl i448 %r94, 416
%r96 = or i448 %r90, %r95
%r97 = zext i448 %r96 to i480
%r99 = getelementptr i32, i32* %r2, i32 14
%r100 = load i32, i32* %r99
%r101 = zext i32 %r100 to i480
%r102 = shl i480 %r101, 448
%r103 = or i480 %r97, %r102
%r104 = zext i480 %r103 to i512
%r106 = getelementptr i32, i32* %r2, i32 15
%r107 = load i32, i32* %r106
%r108 = zext i32 %r107 to i512
%r109 = shl i512 %r108, 480
%r110 = or i512 %r104, %r109
%r111 = load i32, i32* %r3
%r112 = zext i32 %r111 to i64
%r114 = getelementptr i32, i32* %r3, i32 1
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i64
%r117 = shl i64 %r116, 32
%r118 = or i64 %r112, %r117
%r119 = zext i64 %r118 to i96
%r121 = getelementptr i32, i32* %r3, i32 2
%r122 = load i32, i32* %r121
%r123 = zext i32 %r122 to i96
%r124 = shl i96 %r123, 64
%r125 = or i96 %r119, %r124
%r126 = zext i96 %r125 to i128
%r128 = getelementptr i32, i32* %r3, i32 3
%r129 = load i32, i32* %r128
%r130 = zext i32 %r129 to i128
%r131 = shl i128 %r130, 96
%r132 = or i128 %r126, %r131
%r133 = zext i128 %r132 to i160
%r135 = getelementptr i32, i32* %r3, i32 4
%r136 = load i32, i32* %r135
%r137 = zext i32 %r136 to i160
%r138 = shl i160 %r137, 128
%r139 = or i160 %r133, %r138
%r140 = zext i160 %r139 to i192
%r142 = getelementptr i32, i32* %r3, i32 5
%r143 = load i32, i32* %r142
%r144 = zext i32 %r143 to i192
%r145 = shl i192 %r144, 160
%r146 = or i192 %r140, %r145
%r147 = zext i192 %r146 to i224
%r149 = getelementptr i32, i32* %r3, i32 6
%r150 = load i32, i32* %r149
%r151 = zext i32 %r150 to i224
%r152 = shl i224 %r151, 192
%r153 = or i224 %r147, %r152
%r154 = zext i224 %r153 to i256
%r156 = getelementptr i32, i32* %r3, i32 7
%r157 = load i32, i32* %r156
%r158 = zext i32 %r157 to i256
%r159 = shl i256 %r158, 224
%r160 = or i256 %r154, %r159
%r161 = zext i256 %r160 to i288
%r163 = getelementptr i32, i32* %r3, i32 8
%r164 = load i32, i32* %r163
%r165 = zext i32 %r164 to i288
%r166 = shl i288 %r165, 256
%r167 = or i288 %r161, %r166
%r168 = zext i288 %r167 to i320
%r170 = getelementptr i32, i32* %r3, i32 9
%r171 = load i32, i32* %r170
%r172 = zext i32 %r171 to i320
%r173 = shl i320 %r172, 288
%r174 = or i320 %r168, %r173
%r175 = zext i320 %r174 to i352
%r177 = getelementptr i32, i32* %r3, i32 10
%r178 = load i32, i32* %r177
%r179 = zext i32 %r178 to i352
%r180 = shl i352 %r179, 320
%r181 = or i352 %r175, %r180
%r182 = zext i352 %r181 to i384
%r184 = getelementptr i32, i32* %r3, i32 11
%r185 = load i32, i32* %r184
%r186 = zext i32 %r185 to i384
%r187 = shl i384 %r186, 352
%r188 = or i384 %r182, %r187
%r189 = zext i384 %r188 to i416
%r191 = getelementptr i32, i32* %r3, i32 12
%r192 = load i32, i32* %r191
%r193 = zext i32 %r192 to i416
%r194 = shl i416 %r193, 384
%r195 = or i416 %r189, %r194
%r196 = zext i416 %r195 to i448
%r198 = getelementptr i32, i32* %r3, i32 13
%r199 = load i32, i32* %r198
%r200 = zext i32 %r199 to i448
%r201 = shl i448 %r200, 416
%r202 = or i448 %r196, %r201
%r203 = zext i448 %r202 to i480
%r205 = getelementptr i32, i32* %r3, i32 14
%r206 = load i32, i32* %r205
%r207 = zext i32 %r206 to i480
%r208 = shl i480 %r207, 448
%r209 = or i480 %r203, %r208
%r210 = zext i480 %r209 to i512
%r212 = getelementptr i32, i32* %r3, i32 15
%r213 = load i32, i32* %r212
%r214 = zext i32 %r213 to i512
%r215 = shl i512 %r214, 480
%r216 = or i512 %r210, %r215
%r217 = zext i512 %r110 to i544
%r218 = zext i512 %r216 to i544
%r219 = sub i544 %r217, %r218
%r220 = trunc i544 %r219 to i256
%r222 = getelementptr i32, i32* %r1, i32 0
%r223 = trunc i256 %r220 to i32
store i32 %r223, i32* %r222
%r224 = lshr i256 %r220, 32
%r226 = getelementptr i32, i32* %r1, i32 1
%r227 = trunc i256 %r224 to i32
store i32 %r227, i32* %r226
%r228 = lshr i256 %r224, 32
%r230 = getelementptr i32, i32* %r1, i32 2
%r231 = trunc i256 %r228 to i32
store i32 %r231, i32* %r230
%r232 = lshr i256 %r228, 32
%r234 = getelementptr i32, i32* %r1, i32 3
%r235 = trunc i256 %r232 to i32
store i32 %r235, i32* %r234
%r236 = lshr i256 %r232, 32
%r238 = getelementptr i32, i32* %r1, i32 4
%r239 = trunc i256 %r236 to i32
store i32 %r239, i32* %r238
%r240 = lshr i256 %r236, 32
%r242 = getelementptr i32, i32* %r1, i32 5
%r243 = trunc i256 %r240 to i32
store i32 %r243, i32* %r242
%r244 = lshr i256 %r240, 32
%r246 = getelementptr i32, i32* %r1, i32 6
%r247 = trunc i256 %r244 to i32
store i32 %r247, i32* %r246
%r248 = lshr i256 %r244, 32
%r250 = getelementptr i32, i32* %r1, i32 7
%r251 = trunc i256 %r248 to i32
store i32 %r251, i32* %r250
%r252 = lshr i544 %r219, 256
%r253 = trunc i544 %r252 to i256
%r254 = lshr i544 %r219, 512
%r255 = trunc i544 %r254 to i1
%r256 = load i32, i32* %r4
%r257 = zext i32 %r256 to i64
%r259 = getelementptr i32, i32* %r4, i32 1
%r260 = load i32, i32* %r259
%r261 = zext i32 %r260 to i64
%r262 = shl i64 %r261, 32
%r263 = or i64 %r257, %r262
%r264 = zext i64 %r263 to i96
%r266 = getelementptr i32, i32* %r4, i32 2
%r267 = load i32, i32* %r266
%r268 = zext i32 %r267 to i96
%r269 = shl i96 %r268, 64
%r270 = or i96 %r264, %r269
%r271 = zext i96 %r270 to i128
%r273 = getelementptr i32, i32* %r4, i32 3
%r274 = load i32, i32* %r273
%r275 = zext i32 %r274 to i128
%r276 = shl i128 %r275, 96
%r277 = or i128 %r271, %r276
%r278 = zext i128 %r277 to i160
%r280 = getelementptr i32, i32* %r4, i32 4
%r281 = load i32, i32* %r280
%r282 = zext i32 %r281 to i160
%r283 = shl i160 %r282, 128
%r284 = or i160 %r278, %r283
%r285 = zext i160 %r284 to i192
%r287 = getelementptr i32, i32* %r4, i32 5
%r288 = load i32, i32* %r287
%r289 = zext i32 %r288 to i192
%r290 = shl i192 %r289, 160
%r291 = or i192 %r285, %r290
%r292 = zext i192 %r291 to i224
%r294 = getelementptr i32, i32* %r4, i32 6
%r295 = load i32, i32* %r294
%r296 = zext i32 %r295 to i224
%r297 = shl i224 %r296, 192
%r298 = or i224 %r292, %r297
%r299 = zext i224 %r298 to i256
%r301 = getelementptr i32, i32* %r4, i32 7
%r302 = load i32, i32* %r301
%r303 = zext i32 %r302 to i256
%r304 = shl i256 %r303, 224
%r305 = or i256 %r299, %r304
%r307 = select i1 %r255, i256 %r305, i256 0
%r308 = add i256 %r253, %r307
%r310 = getelementptr i32, i32* %r1, i32 8
%r312 = getelementptr i32, i32* %r310, i32 0
%r313 = trunc i256 %r308 to i32
store i32 %r313, i32* %r312
%r314 = lshr i256 %r308, 32
%r316 = getelementptr i32, i32* %r310, i32 1
%r317 = trunc i256 %r314 to i32
store i32 %r317, i32* %r316
%r318 = lshr i256 %r314, 32
%r320 = getelementptr i32, i32* %r310, i32 2
%r321 = trunc i256 %r318 to i32
store i32 %r321, i32* %r320
%r322 = lshr i256 %r318, 32
%r324 = getelementptr i32, i32* %r310, i32 3
%r325 = trunc i256 %r322 to i32
store i32 %r325, i32* %r324
%r326 = lshr i256 %r322, 32
%r328 = getelementptr i32, i32* %r310, i32 4
%r329 = trunc i256 %r326 to i32
store i32 %r329, i32* %r328
%r330 = lshr i256 %r326, 32
%r332 = getelementptr i32, i32* %r310, i32 5
%r333 = trunc i256 %r330 to i32
store i32 %r333, i32* %r332
%r334 = lshr i256 %r330, 32
%r336 = getelementptr i32, i32* %r310, i32 6
%r337 = trunc i256 %r334 to i32
store i32 %r337, i32* %r336
%r338 = lshr i256 %r334, 32
%r340 = getelementptr i32, i32* %r310, i32 7
%r341 = trunc i256 %r338 to i32
store i32 %r341, i32* %r340
ret void
}
define i416 @mulPv384x32(i32* noalias  %r2, i32 %r3)
{
%r5 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 0)
%r6 = trunc i64 %r5 to i32
%r7 = call i32 @extractHigh32(i64 %r5)
%r9 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 1)
%r10 = trunc i64 %r9 to i32
%r11 = call i32 @extractHigh32(i64 %r9)
%r13 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 2)
%r14 = trunc i64 %r13 to i32
%r15 = call i32 @extractHigh32(i64 %r13)
%r17 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 3)
%r18 = trunc i64 %r17 to i32
%r19 = call i32 @extractHigh32(i64 %r17)
%r21 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 4)
%r22 = trunc i64 %r21 to i32
%r23 = call i32 @extractHigh32(i64 %r21)
%r25 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 5)
%r26 = trunc i64 %r25 to i32
%r27 = call i32 @extractHigh32(i64 %r25)
%r29 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 6)
%r30 = trunc i64 %r29 to i32
%r31 = call i32 @extractHigh32(i64 %r29)
%r33 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 7)
%r34 = trunc i64 %r33 to i32
%r35 = call i32 @extractHigh32(i64 %r33)
%r37 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 8)
%r38 = trunc i64 %r37 to i32
%r39 = call i32 @extractHigh32(i64 %r37)
%r41 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 9)
%r42 = trunc i64 %r41 to i32
%r43 = call i32 @extractHigh32(i64 %r41)
%r45 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 10)
%r46 = trunc i64 %r45 to i32
%r47 = call i32 @extractHigh32(i64 %r45)
%r49 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 11)
%r50 = trunc i64 %r49 to i32
%r51 = call i32 @extractHigh32(i64 %r49)
%r52 = zext i32 %r6 to i64
%r53 = zext i32 %r10 to i64
%r54 = shl i64 %r53, 32
%r55 = or i64 %r52, %r54
%r56 = zext i64 %r55 to i96
%r57 = zext i32 %r14 to i96
%r58 = shl i96 %r57, 64
%r59 = or i96 %r56, %r58
%r60 = zext i96 %r59 to i128
%r61 = zext i32 %r18 to i128
%r62 = shl i128 %r61, 96
%r63 = or i128 %r60, %r62
%r64 = zext i128 %r63 to i160
%r65 = zext i32 %r22 to i160
%r66 = shl i160 %r65, 128
%r67 = or i160 %r64, %r66
%r68 = zext i160 %r67 to i192
%r69 = zext i32 %r26 to i192
%r70 = shl i192 %r69, 160
%r71 = or i192 %r68, %r70
%r72 = zext i192 %r71 to i224
%r73 = zext i32 %r30 to i224
%r74 = shl i224 %r73, 192
%r75 = or i224 %r72, %r74
%r76 = zext i224 %r75 to i256
%r77 = zext i32 %r34 to i256
%r78 = shl i256 %r77, 224
%r79 = or i256 %r76, %r78
%r80 = zext i256 %r79 to i288
%r81 = zext i32 %r38 to i288
%r82 = shl i288 %r81, 256
%r83 = or i288 %r80, %r82
%r84 = zext i288 %r83 to i320
%r85 = zext i32 %r42 to i320
%r86 = shl i320 %r85, 288
%r87 = or i320 %r84, %r86
%r88 = zext i320 %r87 to i352
%r89 = zext i32 %r46 to i352
%r90 = shl i352 %r89, 320
%r91 = or i352 %r88, %r90
%r92 = zext i352 %r91 to i384
%r93 = zext i32 %r50 to i384
%r94 = shl i384 %r93, 352
%r95 = or i384 %r92, %r94
%r96 = zext i32 %r7 to i64
%r97 = zext i32 %r11 to i64
%r98 = shl i64 %r97, 32
%r99 = or i64 %r96, %r98
%r100 = zext i64 %r99 to i96
%r101 = zext i32 %r15 to i96
%r102 = shl i96 %r101, 64
%r103 = or i96 %r100, %r102
%r104 = zext i96 %r103 to i128
%r105 = zext i32 %r19 to i128
%r106 = shl i128 %r105, 96
%r107 = or i128 %r104, %r106
%r108 = zext i128 %r107 to i160
%r109 = zext i32 %r23 to i160
%r110 = shl i160 %r109, 128
%r111 = or i160 %r108, %r110
%r112 = zext i160 %r111 to i192
%r113 = zext i32 %r27 to i192
%r114 = shl i192 %r113, 160
%r115 = or i192 %r112, %r114
%r116 = zext i192 %r115 to i224
%r117 = zext i32 %r31 to i224
%r118 = shl i224 %r117, 192
%r119 = or i224 %r116, %r118
%r120 = zext i224 %r119 to i256
%r121 = zext i32 %r35 to i256
%r122 = shl i256 %r121, 224
%r123 = or i256 %r120, %r122
%r124 = zext i256 %r123 to i288
%r125 = zext i32 %r39 to i288
%r126 = shl i288 %r125, 256
%r127 = or i288 %r124, %r126
%r128 = zext i288 %r127 to i320
%r129 = zext i32 %r43 to i320
%r130 = shl i320 %r129, 288
%r131 = or i320 %r128, %r130
%r132 = zext i320 %r131 to i352
%r133 = zext i32 %r47 to i352
%r134 = shl i352 %r133, 320
%r135 = or i352 %r132, %r134
%r136 = zext i352 %r135 to i384
%r137 = zext i32 %r51 to i384
%r138 = shl i384 %r137, 352
%r139 = or i384 %r136, %r138
%r140 = zext i384 %r95 to i416
%r141 = zext i384 %r139 to i416
%r142 = shl i416 %r141, 32
%r143 = add i416 %r140, %r142
ret i416 %r143
}
define void @mcl_fp_mont12L(i32* %r1, i32* %r2, i32* %r3, i32* %r4)
{
%r6 = getelementptr i32, i32* %r4, i32 -1
%r7 = load i32, i32* %r6
%r9 = getelementptr i32, i32* %r3, i32 0
%r10 = load i32, i32* %r9
%r11 = call i416 @mulPv384x32(i32* %r2, i32 %r10)
%r12 = zext i416 %r11 to i448
%r13 = trunc i416 %r11 to i32
%r14 = mul i32 %r13, %r7
%r15 = call i416 @mulPv384x32(i32* %r4, i32 %r14)
%r16 = zext i416 %r15 to i448
%r17 = add i448 %r12, %r16
%r18 = lshr i448 %r17, 32
%r20 = getelementptr i32, i32* %r3, i32 1
%r21 = load i32, i32* %r20
%r22 = call i416 @mulPv384x32(i32* %r2, i32 %r21)
%r23 = zext i416 %r22 to i448
%r24 = add i448 %r18, %r23
%r25 = trunc i448 %r24 to i32
%r26 = mul i32 %r25, %r7
%r27 = call i416 @mulPv384x32(i32* %r4, i32 %r26)
%r28 = zext i416 %r27 to i448
%r29 = add i448 %r24, %r28
%r30 = lshr i448 %r29, 32
%r32 = getelementptr i32, i32* %r3, i32 2
%r33 = load i32, i32* %r32
%r34 = call i416 @mulPv384x32(i32* %r2, i32 %r33)
%r35 = zext i416 %r34 to i448
%r36 = add i448 %r30, %r35
%r37 = trunc i448 %r36 to i32
%r38 = mul i32 %r37, %r7
%r39 = call i416 @mulPv384x32(i32* %r4, i32 %r38)
%r40 = zext i416 %r39 to i448
%r41 = add i448 %r36, %r40
%r42 = lshr i448 %r41, 32
%r44 = getelementptr i32, i32* %r3, i32 3
%r45 = load i32, i32* %r44
%r46 = call i416 @mulPv384x32(i32* %r2, i32 %r45)
%r47 = zext i416 %r46 to i448
%r48 = add i448 %r42, %r47
%r49 = trunc i448 %r48 to i32
%r50 = mul i32 %r49, %r7
%r51 = call i416 @mulPv384x32(i32* %r4, i32 %r50)
%r52 = zext i416 %r51 to i448
%r53 = add i448 %r48, %r52
%r54 = lshr i448 %r53, 32
%r56 = getelementptr i32, i32* %r3, i32 4
%r57 = load i32, i32* %r56
%r58 = call i416 @mulPv384x32(i32* %r2, i32 %r57)
%r59 = zext i416 %r58 to i448
%r60 = add i448 %r54, %r59
%r61 = trunc i448 %r60 to i32
%r62 = mul i32 %r61, %r7
%r63 = call i416 @mulPv384x32(i32* %r4, i32 %r62)
%r64 = zext i416 %r63 to i448
%r65 = add i448 %r60, %r64
%r66 = lshr i448 %r65, 32
%r68 = getelementptr i32, i32* %r3, i32 5
%r69 = load i32, i32* %r68
%r70 = call i416 @mulPv384x32(i32* %r2, i32 %r69)
%r71 = zext i416 %r70 to i448
%r72 = add i448 %r66, %r71
%r73 = trunc i448 %r72 to i32
%r74 = mul i32 %r73, %r7
%r75 = call i416 @mulPv384x32(i32* %r4, i32 %r74)
%r76 = zext i416 %r75 to i448
%r77 = add i448 %r72, %r76
%r78 = lshr i448 %r77, 32
%r80 = getelementptr i32, i32* %r3, i32 6
%r81 = load i32, i32* %r80
%r82 = call i416 @mulPv384x32(i32* %r2, i32 %r81)
%r83 = zext i416 %r82 to i448
%r84 = add i448 %r78, %r83
%r85 = trunc i448 %r84 to i32
%r86 = mul i32 %r85, %r7
%r87 = call i416 @mulPv384x32(i32* %r4, i32 %r86)
%r88 = zext i416 %r87 to i448
%r89 = add i448 %r84, %r88
%r90 = lshr i448 %r89, 32
%r92 = getelementptr i32, i32* %r3, i32 7
%r93 = load i32, i32* %r92
%r94 = call i416 @mulPv384x32(i32* %r2, i32 %r93)
%r95 = zext i416 %r94 to i448
%r96 = add i448 %r90, %r95
%r97 = trunc i448 %r96 to i32
%r98 = mul i32 %r97, %r7
%r99 = call i416 @mulPv384x32(i32* %r4, i32 %r98)
%r100 = zext i416 %r99 to i448
%r101 = add i448 %r96, %r100
%r102 = lshr i448 %r101, 32
%r104 = getelementptr i32, i32* %r3, i32 8
%r105 = load i32, i32* %r104
%r106 = call i416 @mulPv384x32(i32* %r2, i32 %r105)
%r107 = zext i416 %r106 to i448
%r108 = add i448 %r102, %r107
%r109 = trunc i448 %r108 to i32
%r110 = mul i32 %r109, %r7
%r111 = call i416 @mulPv384x32(i32* %r4, i32 %r110)
%r112 = zext i416 %r111 to i448
%r113 = add i448 %r108, %r112
%r114 = lshr i448 %r113, 32
%r116 = getelementptr i32, i32* %r3, i32 9
%r117 = load i32, i32* %r116
%r118 = call i416 @mulPv384x32(i32* %r2, i32 %r117)
%r119 = zext i416 %r118 to i448
%r120 = add i448 %r114, %r119
%r121 = trunc i448 %r120 to i32
%r122 = mul i32 %r121, %r7
%r123 = call i416 @mulPv384x32(i32* %r4, i32 %r122)
%r124 = zext i416 %r123 to i448
%r125 = add i448 %r120, %r124
%r126 = lshr i448 %r125, 32
%r128 = getelementptr i32, i32* %r3, i32 10
%r129 = load i32, i32* %r128
%r130 = call i416 @mulPv384x32(i32* %r2, i32 %r129)
%r131 = zext i416 %r130 to i448
%r132 = add i448 %r126, %r131
%r133 = trunc i448 %r132 to i32
%r134 = mul i32 %r133, %r7
%r135 = call i416 @mulPv384x32(i32* %r4, i32 %r134)
%r136 = zext i416 %r135 to i448
%r137 = add i448 %r132, %r136
%r138 = lshr i448 %r137, 32
%r140 = getelementptr i32, i32* %r3, i32 11
%r141 = load i32, i32* %r140
%r142 = call i416 @mulPv384x32(i32* %r2, i32 %r141)
%r143 = zext i416 %r142 to i448
%r144 = add i448 %r138, %r143
%r145 = trunc i448 %r144 to i32
%r146 = mul i32 %r145, %r7
%r147 = call i416 @mulPv384x32(i32* %r4, i32 %r146)
%r148 = zext i416 %r147 to i448
%r149 = add i448 %r144, %r148
%r150 = lshr i448 %r149, 32
%r151 = trunc i448 %r150 to i416
%r152 = load i32, i32* %r4
%r153 = zext i32 %r152 to i64
%r155 = getelementptr i32, i32* %r4, i32 1
%r156 = load i32, i32* %r155
%r157 = zext i32 %r156 to i64
%r158 = shl i64 %r157, 32
%r159 = or i64 %r153, %r158
%r160 = zext i64 %r159 to i96
%r162 = getelementptr i32, i32* %r4, i32 2
%r163 = load i32, i32* %r162
%r164 = zext i32 %r163 to i96
%r165 = shl i96 %r164, 64
%r166 = or i96 %r160, %r165
%r167 = zext i96 %r166 to i128
%r169 = getelementptr i32, i32* %r4, i32 3
%r170 = load i32, i32* %r169
%r171 = zext i32 %r170 to i128
%r172 = shl i128 %r171, 96
%r173 = or i128 %r167, %r172
%r174 = zext i128 %r173 to i160
%r176 = getelementptr i32, i32* %r4, i32 4
%r177 = load i32, i32* %r176
%r178 = zext i32 %r177 to i160
%r179 = shl i160 %r178, 128
%r180 = or i160 %r174, %r179
%r181 = zext i160 %r180 to i192
%r183 = getelementptr i32, i32* %r4, i32 5
%r184 = load i32, i32* %r183
%r185 = zext i32 %r184 to i192
%r186 = shl i192 %r185, 160
%r187 = or i192 %r181, %r186
%r188 = zext i192 %r187 to i224
%r190 = getelementptr i32, i32* %r4, i32 6
%r191 = load i32, i32* %r190
%r192 = zext i32 %r191 to i224
%r193 = shl i224 %r192, 192
%r194 = or i224 %r188, %r193
%r195 = zext i224 %r194 to i256
%r197 = getelementptr i32, i32* %r4, i32 7
%r198 = load i32, i32* %r197
%r199 = zext i32 %r198 to i256
%r200 = shl i256 %r199, 224
%r201 = or i256 %r195, %r200
%r202 = zext i256 %r201 to i288
%r204 = getelementptr i32, i32* %r4, i32 8
%r205 = load i32, i32* %r204
%r206 = zext i32 %r205 to i288
%r207 = shl i288 %r206, 256
%r208 = or i288 %r202, %r207
%r209 = zext i288 %r208 to i320
%r211 = getelementptr i32, i32* %r4, i32 9
%r212 = load i32, i32* %r211
%r213 = zext i32 %r212 to i320
%r214 = shl i320 %r213, 288
%r215 = or i320 %r209, %r214
%r216 = zext i320 %r215 to i352
%r218 = getelementptr i32, i32* %r4, i32 10
%r219 = load i32, i32* %r218
%r220 = zext i32 %r219 to i352
%r221 = shl i352 %r220, 320
%r222 = or i352 %r216, %r221
%r223 = zext i352 %r222 to i384
%r225 = getelementptr i32, i32* %r4, i32 11
%r226 = load i32, i32* %r225
%r227 = zext i32 %r226 to i384
%r228 = shl i384 %r227, 352
%r229 = or i384 %r223, %r228
%r230 = zext i384 %r229 to i416
%r231 = sub i416 %r151, %r230
%r232 = lshr i416 %r231, 384
%r233 = trunc i416 %r232 to i1
%r234 = select i1 %r233, i416 %r151, i416 %r231
%r235 = trunc i416 %r234 to i384
%r237 = getelementptr i32, i32* %r1, i32 0
%r238 = trunc i384 %r235 to i32
store i32 %r238, i32* %r237
%r239 = lshr i384 %r235, 32
%r241 = getelementptr i32, i32* %r1, i32 1
%r242 = trunc i384 %r239 to i32
store i32 %r242, i32* %r241
%r243 = lshr i384 %r239, 32
%r245 = getelementptr i32, i32* %r1, i32 2
%r246 = trunc i384 %r243 to i32
store i32 %r246, i32* %r245
%r247 = lshr i384 %r243, 32
%r249 = getelementptr i32, i32* %r1, i32 3
%r250 = trunc i384 %r247 to i32
store i32 %r250, i32* %r249
%r251 = lshr i384 %r247, 32
%r253 = getelementptr i32, i32* %r1, i32 4
%r254 = trunc i384 %r251 to i32
store i32 %r254, i32* %r253
%r255 = lshr i384 %r251, 32
%r257 = getelementptr i32, i32* %r1, i32 5
%r258 = trunc i384 %r255 to i32
store i32 %r258, i32* %r257
%r259 = lshr i384 %r255, 32
%r261 = getelementptr i32, i32* %r1, i32 6
%r262 = trunc i384 %r259 to i32
store i32 %r262, i32* %r261
%r263 = lshr i384 %r259, 32
%r265 = getelementptr i32, i32* %r1, i32 7
%r266 = trunc i384 %r263 to i32
store i32 %r266, i32* %r265
%r267 = lshr i384 %r263, 32
%r269 = getelementptr i32, i32* %r1, i32 8
%r270 = trunc i384 %r267 to i32
store i32 %r270, i32* %r269
%r271 = lshr i384 %r267, 32
%r273 = getelementptr i32, i32* %r1, i32 9
%r274 = trunc i384 %r271 to i32
store i32 %r274, i32* %r273
%r275 = lshr i384 %r271, 32
%r277 = getelementptr i32, i32* %r1, i32 10
%r278 = trunc i384 %r275 to i32
store i32 %r278, i32* %r277
%r279 = lshr i384 %r275, 32
%r281 = getelementptr i32, i32* %r1, i32 11
%r282 = trunc i384 %r279 to i32
store i32 %r282, i32* %r281
ret void
}
define void @mcl_fp_montNF12L(i32* %r1, i32* %r2, i32* %r3, i32* %r4)
{
%r6 = getelementptr i32, i32* %r4, i32 -1
%r7 = load i32, i32* %r6
%r8 = load i32, i32* %r3
%r9 = call i416 @mulPv384x32(i32* %r2, i32 %r8)
%r10 = trunc i416 %r9 to i32
%r11 = mul i32 %r10, %r7
%r12 = call i416 @mulPv384x32(i32* %r4, i32 %r11)
%r13 = add i416 %r9, %r12
%r14 = lshr i416 %r13, 32
%r16 = getelementptr i32, i32* %r3, i32 1
%r17 = load i32, i32* %r16
%r18 = call i416 @mulPv384x32(i32* %r2, i32 %r17)
%r19 = add i416 %r14, %r18
%r20 = trunc i416 %r19 to i32
%r21 = mul i32 %r20, %r7
%r22 = call i416 @mulPv384x32(i32* %r4, i32 %r21)
%r23 = add i416 %r19, %r22
%r24 = lshr i416 %r23, 32
%r26 = getelementptr i32, i32* %r3, i32 2
%r27 = load i32, i32* %r26
%r28 = call i416 @mulPv384x32(i32* %r2, i32 %r27)
%r29 = add i416 %r24, %r28
%r30 = trunc i416 %r29 to i32
%r31 = mul i32 %r30, %r7
%r32 = call i416 @mulPv384x32(i32* %r4, i32 %r31)
%r33 = add i416 %r29, %r32
%r34 = lshr i416 %r33, 32
%r36 = getelementptr i32, i32* %r3, i32 3
%r37 = load i32, i32* %r36
%r38 = call i416 @mulPv384x32(i32* %r2, i32 %r37)
%r39 = add i416 %r34, %r38
%r40 = trunc i416 %r39 to i32
%r41 = mul i32 %r40, %r7
%r42 = call i416 @mulPv384x32(i32* %r4, i32 %r41)
%r43 = add i416 %r39, %r42
%r44 = lshr i416 %r43, 32
%r46 = getelementptr i32, i32* %r3, i32 4
%r47 = load i32, i32* %r46
%r48 = call i416 @mulPv384x32(i32* %r2, i32 %r47)
%r49 = add i416 %r44, %r48
%r50 = trunc i416 %r49 to i32
%r51 = mul i32 %r50, %r7
%r52 = call i416 @mulPv384x32(i32* %r4, i32 %r51)
%r53 = add i416 %r49, %r52
%r54 = lshr i416 %r53, 32
%r56 = getelementptr i32, i32* %r3, i32 5
%r57 = load i32, i32* %r56
%r58 = call i416 @mulPv384x32(i32* %r2, i32 %r57)
%r59 = add i416 %r54, %r58
%r60 = trunc i416 %r59 to i32
%r61 = mul i32 %r60, %r7
%r62 = call i416 @mulPv384x32(i32* %r4, i32 %r61)
%r63 = add i416 %r59, %r62
%r64 = lshr i416 %r63, 32
%r66 = getelementptr i32, i32* %r3, i32 6
%r67 = load i32, i32* %r66
%r68 = call i416 @mulPv384x32(i32* %r2, i32 %r67)
%r69 = add i416 %r64, %r68
%r70 = trunc i416 %r69 to i32
%r71 = mul i32 %r70, %r7
%r72 = call i416 @mulPv384x32(i32* %r4, i32 %r71)
%r73 = add i416 %r69, %r72
%r74 = lshr i416 %r73, 32
%r76 = getelementptr i32, i32* %r3, i32 7
%r77 = load i32, i32* %r76
%r78 = call i416 @mulPv384x32(i32* %r2, i32 %r77)
%r79 = add i416 %r74, %r78
%r80 = trunc i416 %r79 to i32
%r81 = mul i32 %r80, %r7
%r82 = call i416 @mulPv384x32(i32* %r4, i32 %r81)
%r83 = add i416 %r79, %r82
%r84 = lshr i416 %r83, 32
%r86 = getelementptr i32, i32* %r3, i32 8
%r87 = load i32, i32* %r86
%r88 = call i416 @mulPv384x32(i32* %r2, i32 %r87)
%r89 = add i416 %r84, %r88
%r90 = trunc i416 %r89 to i32
%r91 = mul i32 %r90, %r7
%r92 = call i416 @mulPv384x32(i32* %r4, i32 %r91)
%r93 = add i416 %r89, %r92
%r94 = lshr i416 %r93, 32
%r96 = getelementptr i32, i32* %r3, i32 9
%r97 = load i32, i32* %r96
%r98 = call i416 @mulPv384x32(i32* %r2, i32 %r97)
%r99 = add i416 %r94, %r98
%r100 = trunc i416 %r99 to i32
%r101 = mul i32 %r100, %r7
%r102 = call i416 @mulPv384x32(i32* %r4, i32 %r101)
%r103 = add i416 %r99, %r102
%r104 = lshr i416 %r103, 32
%r106 = getelementptr i32, i32* %r3, i32 10
%r107 = load i32, i32* %r106
%r108 = call i416 @mulPv384x32(i32* %r2, i32 %r107)
%r109 = add i416 %r104, %r108
%r110 = trunc i416 %r109 to i32
%r111 = mul i32 %r110, %r7
%r112 = call i416 @mulPv384x32(i32* %r4, i32 %r111)
%r113 = add i416 %r109, %r112
%r114 = lshr i416 %r113, 32
%r116 = getelementptr i32, i32* %r3, i32 11
%r117 = load i32, i32* %r116
%r118 = call i416 @mulPv384x32(i32* %r2, i32 %r117)
%r119 = add i416 %r114, %r118
%r120 = trunc i416 %r119 to i32
%r121 = mul i32 %r120, %r7
%r122 = call i416 @mulPv384x32(i32* %r4, i32 %r121)
%r123 = add i416 %r119, %r122
%r124 = lshr i416 %r123, 32
%r125 = trunc i416 %r124 to i384
%r126 = load i32, i32* %r4
%r127 = zext i32 %r126 to i64
%r129 = getelementptr i32, i32* %r4, i32 1
%r130 = load i32, i32* %r129
%r131 = zext i32 %r130 to i64
%r132 = shl i64 %r131, 32
%r133 = or i64 %r127, %r132
%r134 = zext i64 %r133 to i96
%r136 = getelementptr i32, i32* %r4, i32 2
%r137 = load i32, i32* %r136
%r138 = zext i32 %r137 to i96
%r139 = shl i96 %r138, 64
%r140 = or i96 %r134, %r139
%r141 = zext i96 %r140 to i128
%r143 = getelementptr i32, i32* %r4, i32 3
%r144 = load i32, i32* %r143
%r145 = zext i32 %r144 to i128
%r146 = shl i128 %r145, 96
%r147 = or i128 %r141, %r146
%r148 = zext i128 %r147 to i160
%r150 = getelementptr i32, i32* %r4, i32 4
%r151 = load i32, i32* %r150
%r152 = zext i32 %r151 to i160
%r153 = shl i160 %r152, 128
%r154 = or i160 %r148, %r153
%r155 = zext i160 %r154 to i192
%r157 = getelementptr i32, i32* %r4, i32 5
%r158 = load i32, i32* %r157
%r159 = zext i32 %r158 to i192
%r160 = shl i192 %r159, 160
%r161 = or i192 %r155, %r160
%r162 = zext i192 %r161 to i224
%r164 = getelementptr i32, i32* %r4, i32 6
%r165 = load i32, i32* %r164
%r166 = zext i32 %r165 to i224
%r167 = shl i224 %r166, 192
%r168 = or i224 %r162, %r167
%r169 = zext i224 %r168 to i256
%r171 = getelementptr i32, i32* %r4, i32 7
%r172 = load i32, i32* %r171
%r173 = zext i32 %r172 to i256
%r174 = shl i256 %r173, 224
%r175 = or i256 %r169, %r174
%r176 = zext i256 %r175 to i288
%r178 = getelementptr i32, i32* %r4, i32 8
%r179 = load i32, i32* %r178
%r180 = zext i32 %r179 to i288
%r181 = shl i288 %r180, 256
%r182 = or i288 %r176, %r181
%r183 = zext i288 %r182 to i320
%r185 = getelementptr i32, i32* %r4, i32 9
%r186 = load i32, i32* %r185
%r187 = zext i32 %r186 to i320
%r188 = shl i320 %r187, 288
%r189 = or i320 %r183, %r188
%r190 = zext i320 %r189 to i352
%r192 = getelementptr i32, i32* %r4, i32 10
%r193 = load i32, i32* %r192
%r194 = zext i32 %r193 to i352
%r195 = shl i352 %r194, 320
%r196 = or i352 %r190, %r195
%r197 = zext i352 %r196 to i384
%r199 = getelementptr i32, i32* %r4, i32 11
%r200 = load i32, i32* %r199
%r201 = zext i32 %r200 to i384
%r202 = shl i384 %r201, 352
%r203 = or i384 %r197, %r202
%r204 = sub i384 %r125, %r203
%r205 = lshr i384 %r204, 383
%r206 = trunc i384 %r205 to i1
%r207 = select i1 %r206, i384 %r125, i384 %r204
%r209 = getelementptr i32, i32* %r1, i32 0
%r210 = trunc i384 %r207 to i32
store i32 %r210, i32* %r209
%r211 = lshr i384 %r207, 32
%r213 = getelementptr i32, i32* %r1, i32 1
%r214 = trunc i384 %r211 to i32
store i32 %r214, i32* %r213
%r215 = lshr i384 %r211, 32
%r217 = getelementptr i32, i32* %r1, i32 2
%r218 = trunc i384 %r215 to i32
store i32 %r218, i32* %r217
%r219 = lshr i384 %r215, 32
%r221 = getelementptr i32, i32* %r1, i32 3
%r222 = trunc i384 %r219 to i32
store i32 %r222, i32* %r221
%r223 = lshr i384 %r219, 32
%r225 = getelementptr i32, i32* %r1, i32 4
%r226 = trunc i384 %r223 to i32
store i32 %r226, i32* %r225
%r227 = lshr i384 %r223, 32
%r229 = getelementptr i32, i32* %r1, i32 5
%r230 = trunc i384 %r227 to i32
store i32 %r230, i32* %r229
%r231 = lshr i384 %r227, 32
%r233 = getelementptr i32, i32* %r1, i32 6
%r234 = trunc i384 %r231 to i32
store i32 %r234, i32* %r233
%r235 = lshr i384 %r231, 32
%r237 = getelementptr i32, i32* %r1, i32 7
%r238 = trunc i384 %r235 to i32
store i32 %r238, i32* %r237
%r239 = lshr i384 %r235, 32
%r241 = getelementptr i32, i32* %r1, i32 8
%r242 = trunc i384 %r239 to i32
store i32 %r242, i32* %r241
%r243 = lshr i384 %r239, 32
%r245 = getelementptr i32, i32* %r1, i32 9
%r246 = trunc i384 %r243 to i32
store i32 %r246, i32* %r245
%r247 = lshr i384 %r243, 32
%r249 = getelementptr i32, i32* %r1, i32 10
%r250 = trunc i384 %r247 to i32
store i32 %r250, i32* %r249
%r251 = lshr i384 %r247, 32
%r253 = getelementptr i32, i32* %r1, i32 11
%r254 = trunc i384 %r251 to i32
store i32 %r254, i32* %r253
ret void
}
define void @mcl_fp_montRed12L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3)
{
%r5 = getelementptr i32, i32* %r3, i32 -1
%r6 = load i32, i32* %r5
%r7 = load i32, i32* %r3
%r8 = zext i32 %r7 to i64
%r10 = getelementptr i32, i32* %r3, i32 1
%r11 = load i32, i32* %r10
%r12 = zext i32 %r11 to i64
%r13 = shl i64 %r12, 32
%r14 = or i64 %r8, %r13
%r15 = zext i64 %r14 to i96
%r17 = getelementptr i32, i32* %r3, i32 2
%r18 = load i32, i32* %r17
%r19 = zext i32 %r18 to i96
%r20 = shl i96 %r19, 64
%r21 = or i96 %r15, %r20
%r22 = zext i96 %r21 to i128
%r24 = getelementptr i32, i32* %r3, i32 3
%r25 = load i32, i32* %r24
%r26 = zext i32 %r25 to i128
%r27 = shl i128 %r26, 96
%r28 = or i128 %r22, %r27
%r29 = zext i128 %r28 to i160
%r31 = getelementptr i32, i32* %r3, i32 4
%r32 = load i32, i32* %r31
%r33 = zext i32 %r32 to i160
%r34 = shl i160 %r33, 128
%r35 = or i160 %r29, %r34
%r36 = zext i160 %r35 to i192
%r38 = getelementptr i32, i32* %r3, i32 5
%r39 = load i32, i32* %r38
%r40 = zext i32 %r39 to i192
%r41 = shl i192 %r40, 160
%r42 = or i192 %r36, %r41
%r43 = zext i192 %r42 to i224
%r45 = getelementptr i32, i32* %r3, i32 6
%r46 = load i32, i32* %r45
%r47 = zext i32 %r46 to i224
%r48 = shl i224 %r47, 192
%r49 = or i224 %r43, %r48
%r50 = zext i224 %r49 to i256
%r52 = getelementptr i32, i32* %r3, i32 7
%r53 = load i32, i32* %r52
%r54 = zext i32 %r53 to i256
%r55 = shl i256 %r54, 224
%r56 = or i256 %r50, %r55
%r57 = zext i256 %r56 to i288
%r59 = getelementptr i32, i32* %r3, i32 8
%r60 = load i32, i32* %r59
%r61 = zext i32 %r60 to i288
%r62 = shl i288 %r61, 256
%r63 = or i288 %r57, %r62
%r64 = zext i288 %r63 to i320
%r66 = getelementptr i32, i32* %r3, i32 9
%r67 = load i32, i32* %r66
%r68 = zext i32 %r67 to i320
%r69 = shl i320 %r68, 288
%r70 = or i320 %r64, %r69
%r71 = zext i320 %r70 to i352
%r73 = getelementptr i32, i32* %r3, i32 10
%r74 = load i32, i32* %r73
%r75 = zext i32 %r74 to i352
%r76 = shl i352 %r75, 320
%r77 = or i352 %r71, %r76
%r78 = zext i352 %r77 to i384
%r80 = getelementptr i32, i32* %r3, i32 11
%r81 = load i32, i32* %r80
%r82 = zext i32 %r81 to i384
%r83 = shl i384 %r82, 352
%r84 = or i384 %r78, %r83
%r85 = load i32, i32* %r2
%r86 = zext i32 %r85 to i64
%r88 = getelementptr i32, i32* %r2, i32 1
%r89 = load i32, i32* %r88
%r90 = zext i32 %r89 to i64
%r91 = shl i64 %r90, 32
%r92 = or i64 %r86, %r91
%r93 = zext i64 %r92 to i96
%r95 = getelementptr i32, i32* %r2, i32 2
%r96 = load i32, i32* %r95
%r97 = zext i32 %r96 to i96
%r98 = shl i96 %r97, 64
%r99 = or i96 %r93, %r98
%r100 = zext i96 %r99 to i128
%r102 = getelementptr i32, i32* %r2, i32 3
%r103 = load i32, i32* %r102
%r104 = zext i32 %r103 to i128
%r105 = shl i128 %r104, 96
%r106 = or i128 %r100, %r105
%r107 = zext i128 %r106 to i160
%r109 = getelementptr i32, i32* %r2, i32 4
%r110 = load i32, i32* %r109
%r111 = zext i32 %r110 to i160
%r112 = shl i160 %r111, 128
%r113 = or i160 %r107, %r112
%r114 = zext i160 %r113 to i192
%r116 = getelementptr i32, i32* %r2, i32 5
%r117 = load i32, i32* %r116
%r118 = zext i32 %r117 to i192
%r119 = shl i192 %r118, 160
%r120 = or i192 %r114, %r119
%r121 = zext i192 %r120 to i224
%r123 = getelementptr i32, i32* %r2, i32 6
%r124 = load i32, i32* %r123
%r125 = zext i32 %r124 to i224
%r126 = shl i224 %r125, 192
%r127 = or i224 %r121, %r126
%r128 = zext i224 %r127 to i256
%r130 = getelementptr i32, i32* %r2, i32 7
%r131 = load i32, i32* %r130
%r132 = zext i32 %r131 to i256
%r133 = shl i256 %r132, 224
%r134 = or i256 %r128, %r133
%r135 = zext i256 %r134 to i288
%r137 = getelementptr i32, i32* %r2, i32 8
%r138 = load i32, i32* %r137
%r139 = zext i32 %r138 to i288
%r140 = shl i288 %r139, 256
%r141 = or i288 %r135, %r140
%r142 = zext i288 %r141 to i320
%r144 = getelementptr i32, i32* %r2, i32 9
%r145 = load i32, i32* %r144
%r146 = zext i32 %r145 to i320
%r147 = shl i320 %r146, 288
%r148 = or i320 %r142, %r147
%r149 = zext i320 %r148 to i352
%r151 = getelementptr i32, i32* %r2, i32 10
%r152 = load i32, i32* %r151
%r153 = zext i32 %r152 to i352
%r154 = shl i352 %r153, 320
%r155 = or i352 %r149, %r154
%r156 = zext i352 %r155 to i384
%r158 = getelementptr i32, i32* %r2, i32 11
%r159 = load i32, i32* %r158
%r160 = zext i32 %r159 to i384
%r161 = shl i384 %r160, 352
%r162 = or i384 %r156, %r161
%r163 = trunc i384 %r162 to i32
%r164 = mul i32 %r163, %r6
%r165 = call i416 @mulPv384x32(i32* %r3, i32 %r164)
%r167 = getelementptr i32, i32* %r2, i32 12
%r168 = load i32, i32* %r167
%r169 = zext i32 %r168 to i416
%r170 = shl i416 %r169, 384
%r171 = zext i384 %r162 to i416
%r172 = or i416 %r170, %r171
%r173 = zext i416 %r172 to i448
%r174 = zext i416 %r165 to i448
%r175 = add i448 %r173, %r174
%r176 = lshr i448 %r175, 32
%r177 = trunc i448 %r176 to i416
%r178 = lshr i416 %r177, 384
%r179 = trunc i416 %r178 to i32
%r180 = trunc i416 %r177 to i384
%r181 = trunc i384 %r180 to i32
%r182 = mul i32 %r181, %r6
%r183 = call i416 @mulPv384x32(i32* %r3, i32 %r182)
%r184 = zext i32 %r179 to i416
%r185 = shl i416 %r184, 384
%r186 = add i416 %r183, %r185
%r188 = getelementptr i32, i32* %r2, i32 13
%r189 = load i32, i32* %r188
%r190 = zext i32 %r189 to i416
%r191 = shl i416 %r190, 384
%r192 = zext i384 %r180 to i416
%r193 = or i416 %r191, %r192
%r194 = zext i416 %r193 to i448
%r195 = zext i416 %r186 to i448
%r196 = add i448 %r194, %r195
%r197 = lshr i448 %r196, 32
%r198 = trunc i448 %r197 to i416
%r199 = lshr i416 %r198, 384
%r200 = trunc i416 %r199 to i32
%r201 = trunc i416 %r198 to i384
%r202 = trunc i384 %r201 to i32
%r203 = mul i32 %r202, %r6
%r204 = call i416 @mulPv384x32(i32* %r3, i32 %r203)
%r205 = zext i32 %r200 to i416
%r206 = shl i416 %r205, 384
%r207 = add i416 %r204, %r206
%r209 = getelementptr i32, i32* %r2, i32 14
%r210 = load i32, i32* %r209
%r211 = zext i32 %r210 to i416
%r212 = shl i416 %r211, 384
%r213 = zext i384 %r201 to i416
%r214 = or i416 %r212, %r213
%r215 = zext i416 %r214 to i448
%r216 = zext i416 %r207 to i448
%r217 = add i448 %r215, %r216
%r218 = lshr i448 %r217, 32
%r219 = trunc i448 %r218 to i416
%r220 = lshr i416 %r219, 384
%r221 = trunc i416 %r220 to i32
%r222 = trunc i416 %r219 to i384
%r223 = trunc i384 %r222 to i32
%r224 = mul i32 %r223, %r6
%r225 = call i416 @mulPv384x32(i32* %r3, i32 %r224)
%r226 = zext i32 %r221 to i416
%r227 = shl i416 %r226, 384
%r228 = add i416 %r225, %r227
%r230 = getelementptr i32, i32* %r2, i32 15
%r231 = load i32, i32* %r230
%r232 = zext i32 %r231 to i416
%r233 = shl i416 %r232, 384
%r234 = zext i384 %r222 to i416
%r235 = or i416 %r233, %r234
%r236 = zext i416 %r235 to i448
%r237 = zext i416 %r228 to i448
%r238 = add i448 %r236, %r237
%r239 = lshr i448 %r238, 32
%r240 = trunc i448 %r239 to i416
%r241 = lshr i416 %r240, 384
%r242 = trunc i416 %r241 to i32
%r243 = trunc i416 %r240 to i384
%r244 = trunc i384 %r243 to i32
%r245 = mul i32 %r244, %r6
%r246 = call i416 @mulPv384x32(i32* %r3, i32 %r245)
%r247 = zext i32 %r242 to i416
%r248 = shl i416 %r247, 384
%r249 = add i416 %r246, %r248
%r251 = getelementptr i32, i32* %r2, i32 16
%r252 = load i32, i32* %r251
%r253 = zext i32 %r252 to i416
%r254 = shl i416 %r253, 384
%r255 = zext i384 %r243 to i416
%r256 = or i416 %r254, %r255
%r257 = zext i416 %r256 to i448
%r258 = zext i416 %r249 to i448
%r259 = add i448 %r257, %r258
%r260 = lshr i448 %r259, 32
%r261 = trunc i448 %r260 to i416
%r262 = lshr i416 %r261, 384
%r263 = trunc i416 %r262 to i32
%r264 = trunc i416 %r261 to i384
%r265 = trunc i384 %r264 to i32
%r266 = mul i32 %r265, %r6
%r267 = call i416 @mulPv384x32(i32* %r3, i32 %r266)
%r268 = zext i32 %r263 to i416
%r269 = shl i416 %r268, 384
%r270 = add i416 %r267, %r269
%r272 = getelementptr i32, i32* %r2, i32 17
%r273 = load i32, i32* %r272
%r274 = zext i32 %r273 to i416
%r275 = shl i416 %r274, 384
%r276 = zext i384 %r264 to i416
%r277 = or i416 %r275, %r276
%r278 = zext i416 %r277 to i448
%r279 = zext i416 %r270 to i448
%r280 = add i448 %r278, %r279
%r281 = lshr i448 %r280, 32
%r282 = trunc i448 %r281 to i416
%r283 = lshr i416 %r282, 384
%r284 = trunc i416 %r283 to i32
%r285 = trunc i416 %r282 to i384
%r286 = trunc i384 %r285 to i32
%r287 = mul i32 %r286, %r6
%r288 = call i416 @mulPv384x32(i32* %r3, i32 %r287)
%r289 = zext i32 %r284 to i416
%r290 = shl i416 %r289, 384
%r291 = add i416 %r288, %r290
%r293 = getelementptr i32, i32* %r2, i32 18
%r294 = load i32, i32* %r293
%r295 = zext i32 %r294 to i416
%r296 = shl i416 %r295, 384
%r297 = zext i384 %r285 to i416
%r298 = or i416 %r296, %r297
%r299 = zext i416 %r298 to i448
%r300 = zext i416 %r291 to i448
%r301 = add i448 %r299, %r300
%r302 = lshr i448 %r301, 32
%r303 = trunc i448 %r302 to i416
%r304 = lshr i416 %r303, 384
%r305 = trunc i416 %r304 to i32
%r306 = trunc i416 %r303 to i384
%r307 = trunc i384 %r306 to i32
%r308 = mul i32 %r307, %r6
%r309 = call i416 @mulPv384x32(i32* %r3, i32 %r308)
%r310 = zext i32 %r305 to i416
%r311 = shl i416 %r310, 384
%r312 = add i416 %r309, %r311
%r314 = getelementptr i32, i32* %r2, i32 19
%r315 = load i32, i32* %r314
%r316 = zext i32 %r315 to i416
%r317 = shl i416 %r316, 384
%r318 = zext i384 %r306 to i416
%r319 = or i416 %r317, %r318
%r320 = zext i416 %r319 to i448
%r321 = zext i416 %r312 to i448
%r322 = add i448 %r320, %r321
%r323 = lshr i448 %r322, 32
%r324 = trunc i448 %r323 to i416
%r325 = lshr i416 %r324, 384
%r326 = trunc i416 %r325 to i32
%r327 = trunc i416 %r324 to i384
%r328 = trunc i384 %r327 to i32
%r329 = mul i32 %r328, %r6
%r330 = call i416 @mulPv384x32(i32* %r3, i32 %r329)
%r331 = zext i32 %r326 to i416
%r332 = shl i416 %r331, 384
%r333 = add i416 %r330, %r332
%r335 = getelementptr i32, i32* %r2, i32 20
%r336 = load i32, i32* %r335
%r337 = zext i32 %r336 to i416
%r338 = shl i416 %r337, 384
%r339 = zext i384 %r327 to i416
%r340 = or i416 %r338, %r339
%r341 = zext i416 %r340 to i448
%r342 = zext i416 %r333 to i448
%r343 = add i448 %r341, %r342
%r344 = lshr i448 %r343, 32
%r345 = trunc i448 %r344 to i416
%r346 = lshr i416 %r345, 384
%r347 = trunc i416 %r346 to i32
%r348 = trunc i416 %r345 to i384
%r349 = trunc i384 %r348 to i32
%r350 = mul i32 %r349, %r6
%r351 = call i416 @mulPv384x32(i32* %r3, i32 %r350)
%r352 = zext i32 %r347 to i416
%r353 = shl i416 %r352, 384
%r354 = add i416 %r351, %r353
%r356 = getelementptr i32, i32* %r2, i32 21
%r357 = load i32, i32* %r356
%r358 = zext i32 %r357 to i416
%r359 = shl i416 %r358, 384
%r360 = zext i384 %r348 to i416
%r361 = or i416 %r359, %r360
%r362 = zext i416 %r361 to i448
%r363 = zext i416 %r354 to i448
%r364 = add i448 %r362, %r363
%r365 = lshr i448 %r364, 32
%r366 = trunc i448 %r365 to i416
%r367 = lshr i416 %r366, 384
%r368 = trunc i416 %r367 to i32
%r369 = trunc i416 %r366 to i384
%r370 = trunc i384 %r369 to i32
%r371 = mul i32 %r370, %r6
%r372 = call i416 @mulPv384x32(i32* %r3, i32 %r371)
%r373 = zext i32 %r368 to i416
%r374 = shl i416 %r373, 384
%r375 = add i416 %r372, %r374
%r377 = getelementptr i32, i32* %r2, i32 22
%r378 = load i32, i32* %r377
%r379 = zext i32 %r378 to i416
%r380 = shl i416 %r379, 384
%r381 = zext i384 %r369 to i416
%r382 = or i416 %r380, %r381
%r383 = zext i416 %r382 to i448
%r384 = zext i416 %r375 to i448
%r385 = add i448 %r383, %r384
%r386 = lshr i448 %r385, 32
%r387 = trunc i448 %r386 to i416
%r388 = lshr i416 %r387, 384
%r389 = trunc i416 %r388 to i32
%r390 = trunc i416 %r387 to i384
%r391 = trunc i384 %r390 to i32
%r392 = mul i32 %r391, %r6
%r393 = call i416 @mulPv384x32(i32* %r3, i32 %r392)
%r394 = zext i32 %r389 to i416
%r395 = shl i416 %r394, 384
%r396 = add i416 %r393, %r395
%r398 = getelementptr i32, i32* %r2, i32 23
%r399 = load i32, i32* %r398
%r400 = zext i32 %r399 to i416
%r401 = shl i416 %r400, 384
%r402 = zext i384 %r390 to i416
%r403 = or i416 %r401, %r402
%r404 = zext i416 %r403 to i448
%r405 = zext i416 %r396 to i448
%r406 = add i448 %r404, %r405
%r407 = lshr i448 %r406, 32
%r408 = trunc i448 %r407 to i416
%r409 = lshr i416 %r408, 384
%r410 = trunc i416 %r409 to i32
%r411 = trunc i416 %r408 to i384
%r412 = zext i384 %r84 to i416
%r413 = zext i32 %r410 to i416
%r414 = shl i416 %r413, 384
%r415 = zext i384 %r411 to i416
%r416 = or i416 %r414, %r415
%r417 = sub i416 %r416, %r412
%r418 = lshr i416 %r417, 384
%r419 = trunc i416 %r418 to i1
%r420 = select i1 %r419, i416 %r416, i416 %r417
%r421 = trunc i416 %r420 to i384
%r423 = getelementptr i32, i32* %r1, i32 0
%r424 = trunc i384 %r421 to i32
store i32 %r424, i32* %r423
%r425 = lshr i384 %r421, 32
%r427 = getelementptr i32, i32* %r1, i32 1
%r428 = trunc i384 %r425 to i32
store i32 %r428, i32* %r427
%r429 = lshr i384 %r425, 32
%r431 = getelementptr i32, i32* %r1, i32 2
%r432 = trunc i384 %r429 to i32
store i32 %r432, i32* %r431
%r433 = lshr i384 %r429, 32
%r435 = getelementptr i32, i32* %r1, i32 3
%r436 = trunc i384 %r433 to i32
store i32 %r436, i32* %r435
%r437 = lshr i384 %r433, 32
%r439 = getelementptr i32, i32* %r1, i32 4
%r440 = trunc i384 %r437 to i32
store i32 %r440, i32* %r439
%r441 = lshr i384 %r437, 32
%r443 = getelementptr i32, i32* %r1, i32 5
%r444 = trunc i384 %r441 to i32
store i32 %r444, i32* %r443
%r445 = lshr i384 %r441, 32
%r447 = getelementptr i32, i32* %r1, i32 6
%r448 = trunc i384 %r445 to i32
store i32 %r448, i32* %r447
%r449 = lshr i384 %r445, 32
%r451 = getelementptr i32, i32* %r1, i32 7
%r452 = trunc i384 %r449 to i32
store i32 %r452, i32* %r451
%r453 = lshr i384 %r449, 32
%r455 = getelementptr i32, i32* %r1, i32 8
%r456 = trunc i384 %r453 to i32
store i32 %r456, i32* %r455
%r457 = lshr i384 %r453, 32
%r459 = getelementptr i32, i32* %r1, i32 9
%r460 = trunc i384 %r457 to i32
store i32 %r460, i32* %r459
%r461 = lshr i384 %r457, 32
%r463 = getelementptr i32, i32* %r1, i32 10
%r464 = trunc i384 %r461 to i32
store i32 %r464, i32* %r463
%r465 = lshr i384 %r461, 32
%r467 = getelementptr i32, i32* %r1, i32 11
%r468 = trunc i384 %r465 to i32
store i32 %r468, i32* %r467
ret void
}
define void @mcl_fp_montRedNF12L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3)
{
%r5 = getelementptr i32, i32* %r3, i32 -1
%r6 = load i32, i32* %r5
%r7 = load i32, i32* %r3
%r8 = zext i32 %r7 to i64
%r10 = getelementptr i32, i32* %r3, i32 1
%r11 = load i32, i32* %r10
%r12 = zext i32 %r11 to i64
%r13 = shl i64 %r12, 32
%r14 = or i64 %r8, %r13
%r15 = zext i64 %r14 to i96
%r17 = getelementptr i32, i32* %r3, i32 2
%r18 = load i32, i32* %r17
%r19 = zext i32 %r18 to i96
%r20 = shl i96 %r19, 64
%r21 = or i96 %r15, %r20
%r22 = zext i96 %r21 to i128
%r24 = getelementptr i32, i32* %r3, i32 3
%r25 = load i32, i32* %r24
%r26 = zext i32 %r25 to i128
%r27 = shl i128 %r26, 96
%r28 = or i128 %r22, %r27
%r29 = zext i128 %r28 to i160
%r31 = getelementptr i32, i32* %r3, i32 4
%r32 = load i32, i32* %r31
%r33 = zext i32 %r32 to i160
%r34 = shl i160 %r33, 128
%r35 = or i160 %r29, %r34
%r36 = zext i160 %r35 to i192
%r38 = getelementptr i32, i32* %r3, i32 5
%r39 = load i32, i32* %r38
%r40 = zext i32 %r39 to i192
%r41 = shl i192 %r40, 160
%r42 = or i192 %r36, %r41
%r43 = zext i192 %r42 to i224
%r45 = getelementptr i32, i32* %r3, i32 6
%r46 = load i32, i32* %r45
%r47 = zext i32 %r46 to i224
%r48 = shl i224 %r47, 192
%r49 = or i224 %r43, %r48
%r50 = zext i224 %r49 to i256
%r52 = getelementptr i32, i32* %r3, i32 7
%r53 = load i32, i32* %r52
%r54 = zext i32 %r53 to i256
%r55 = shl i256 %r54, 224
%r56 = or i256 %r50, %r55
%r57 = zext i256 %r56 to i288
%r59 = getelementptr i32, i32* %r3, i32 8
%r60 = load i32, i32* %r59
%r61 = zext i32 %r60 to i288
%r62 = shl i288 %r61, 256
%r63 = or i288 %r57, %r62
%r64 = zext i288 %r63 to i320
%r66 = getelementptr i32, i32* %r3, i32 9
%r67 = load i32, i32* %r66
%r68 = zext i32 %r67 to i320
%r69 = shl i320 %r68, 288
%r70 = or i320 %r64, %r69
%r71 = zext i320 %r70 to i352
%r73 = getelementptr i32, i32* %r3, i32 10
%r74 = load i32, i32* %r73
%r75 = zext i32 %r74 to i352
%r76 = shl i352 %r75, 320
%r77 = or i352 %r71, %r76
%r78 = zext i352 %r77 to i384
%r80 = getelementptr i32, i32* %r3, i32 11
%r81 = load i32, i32* %r80
%r82 = zext i32 %r81 to i384
%r83 = shl i384 %r82, 352
%r84 = or i384 %r78, %r83
%r85 = load i32, i32* %r2
%r86 = zext i32 %r85 to i64
%r88 = getelementptr i32, i32* %r2, i32 1
%r89 = load i32, i32* %r88
%r90 = zext i32 %r89 to i64
%r91 = shl i64 %r90, 32
%r92 = or i64 %r86, %r91
%r93 = zext i64 %r92 to i96
%r95 = getelementptr i32, i32* %r2, i32 2
%r96 = load i32, i32* %r95
%r97 = zext i32 %r96 to i96
%r98 = shl i96 %r97, 64
%r99 = or i96 %r93, %r98
%r100 = zext i96 %r99 to i128
%r102 = getelementptr i32, i32* %r2, i32 3
%r103 = load i32, i32* %r102
%r104 = zext i32 %r103 to i128
%r105 = shl i128 %r104, 96
%r106 = or i128 %r100, %r105
%r107 = zext i128 %r106 to i160
%r109 = getelementptr i32, i32* %r2, i32 4
%r110 = load i32, i32* %r109
%r111 = zext i32 %r110 to i160
%r112 = shl i160 %r111, 128
%r113 = or i160 %r107, %r112
%r114 = zext i160 %r113 to i192
%r116 = getelementptr i32, i32* %r2, i32 5
%r117 = load i32, i32* %r116
%r118 = zext i32 %r117 to i192
%r119 = shl i192 %r118, 160
%r120 = or i192 %r114, %r119
%r121 = zext i192 %r120 to i224
%r123 = getelementptr i32, i32* %r2, i32 6
%r124 = load i32, i32* %r123
%r125 = zext i32 %r124 to i224
%r126 = shl i224 %r125, 192
%r127 = or i224 %r121, %r126
%r128 = zext i224 %r127 to i256
%r130 = getelementptr i32, i32* %r2, i32 7
%r131 = load i32, i32* %r130
%r132 = zext i32 %r131 to i256
%r133 = shl i256 %r132, 224
%r134 = or i256 %r128, %r133
%r135 = zext i256 %r134 to i288
%r137 = getelementptr i32, i32* %r2, i32 8
%r138 = load i32, i32* %r137
%r139 = zext i32 %r138 to i288
%r140 = shl i288 %r139, 256
%r141 = or i288 %r135, %r140
%r142 = zext i288 %r141 to i320
%r144 = getelementptr i32, i32* %r2, i32 9
%r145 = load i32, i32* %r144
%r146 = zext i32 %r145 to i320
%r147 = shl i320 %r146, 288
%r148 = or i320 %r142, %r147
%r149 = zext i320 %r148 to i352
%r151 = getelementptr i32, i32* %r2, i32 10
%r152 = load i32, i32* %r151
%r153 = zext i32 %r152 to i352
%r154 = shl i352 %r153, 320
%r155 = or i352 %r149, %r154
%r156 = zext i352 %r155 to i384
%r158 = getelementptr i32, i32* %r2, i32 11
%r159 = load i32, i32* %r158
%r160 = zext i32 %r159 to i384
%r161 = shl i384 %r160, 352
%r162 = or i384 %r156, %r161
%r163 = trunc i384 %r162 to i32
%r164 = mul i32 %r163, %r6
%r165 = call i416 @mulPv384x32(i32* %r3, i32 %r164)
%r167 = getelementptr i32, i32* %r2, i32 12
%r168 = load i32, i32* %r167
%r169 = zext i32 %r168 to i416
%r170 = shl i416 %r169, 384
%r171 = zext i384 %r162 to i416
%r172 = or i416 %r170, %r171
%r173 = zext i416 %r172 to i448
%r174 = zext i416 %r165 to i448
%r175 = add i448 %r173, %r174
%r176 = lshr i448 %r175, 32
%r177 = trunc i448 %r176 to i416
%r178 = lshr i416 %r177, 384
%r179 = trunc i416 %r178 to i32
%r180 = trunc i416 %r177 to i384
%r181 = trunc i384 %r180 to i32
%r182 = mul i32 %r181, %r6
%r183 = call i416 @mulPv384x32(i32* %r3, i32 %r182)
%r184 = zext i32 %r179 to i416
%r185 = shl i416 %r184, 384
%r186 = add i416 %r183, %r185
%r188 = getelementptr i32, i32* %r2, i32 13
%r189 = load i32, i32* %r188
%r190 = zext i32 %r189 to i416
%r191 = shl i416 %r190, 384
%r192 = zext i384 %r180 to i416
%r193 = or i416 %r191, %r192
%r194 = zext i416 %r193 to i448
%r195 = zext i416 %r186 to i448
%r196 = add i448 %r194, %r195
%r197 = lshr i448 %r196, 32
%r198 = trunc i448 %r197 to i416
%r199 = lshr i416 %r198, 384
%r200 = trunc i416 %r199 to i32
%r201 = trunc i416 %r198 to i384
%r202 = trunc i384 %r201 to i32
%r203 = mul i32 %r202, %r6
%r204 = call i416 @mulPv384x32(i32* %r3, i32 %r203)
%r205 = zext i32 %r200 to i416
%r206 = shl i416 %r205, 384
%r207 = add i416 %r204, %r206
%r209 = getelementptr i32, i32* %r2, i32 14
%r210 = load i32, i32* %r209
%r211 = zext i32 %r210 to i416
%r212 = shl i416 %r211, 384
%r213 = zext i384 %r201 to i416
%r214 = or i416 %r212, %r213
%r215 = zext i416 %r214 to i448
%r216 = zext i416 %r207 to i448
%r217 = add i448 %r215, %r216
%r218 = lshr i448 %r217, 32
%r219 = trunc i448 %r218 to i416
%r220 = lshr i416 %r219, 384
%r221 = trunc i416 %r220 to i32
%r222 = trunc i416 %r219 to i384
%r223 = trunc i384 %r222 to i32
%r224 = mul i32 %r223, %r6
%r225 = call i416 @mulPv384x32(i32* %r3, i32 %r224)
%r226 = zext i32 %r221 to i416
%r227 = shl i416 %r226, 384
%r228 = add i416 %r225, %r227
%r230 = getelementptr i32, i32* %r2, i32 15
%r231 = load i32, i32* %r230
%r232 = zext i32 %r231 to i416
%r233 = shl i416 %r232, 384
%r234 = zext i384 %r222 to i416
%r235 = or i416 %r233, %r234
%r236 = zext i416 %r235 to i448
%r237 = zext i416 %r228 to i448
%r238 = add i448 %r236, %r237
%r239 = lshr i448 %r238, 32
%r240 = trunc i448 %r239 to i416
%r241 = lshr i416 %r240, 384
%r242 = trunc i416 %r241 to i32
%r243 = trunc i416 %r240 to i384
%r244 = trunc i384 %r243 to i32
%r245 = mul i32 %r244, %r6
%r246 = call i416 @mulPv384x32(i32* %r3, i32 %r245)
%r247 = zext i32 %r242 to i416
%r248 = shl i416 %r247, 384
%r249 = add i416 %r246, %r248
%r251 = getelementptr i32, i32* %r2, i32 16
%r252 = load i32, i32* %r251
%r253 = zext i32 %r252 to i416
%r254 = shl i416 %r253, 384
%r255 = zext i384 %r243 to i416
%r256 = or i416 %r254, %r255
%r257 = zext i416 %r256 to i448
%r258 = zext i416 %r249 to i448
%r259 = add i448 %r257, %r258
%r260 = lshr i448 %r259, 32
%r261 = trunc i448 %r260 to i416
%r262 = lshr i416 %r261, 384
%r263 = trunc i416 %r262 to i32
%r264 = trunc i416 %r261 to i384
%r265 = trunc i384 %r264 to i32
%r266 = mul i32 %r265, %r6
%r267 = call i416 @mulPv384x32(i32* %r3, i32 %r266)
%r268 = zext i32 %r263 to i416
%r269 = shl i416 %r268, 384
%r270 = add i416 %r267, %r269
%r272 = getelementptr i32, i32* %r2, i32 17
%r273 = load i32, i32* %r272
%r274 = zext i32 %r273 to i416
%r275 = shl i416 %r274, 384
%r276 = zext i384 %r264 to i416
%r277 = or i416 %r275, %r276
%r278 = zext i416 %r277 to i448
%r279 = zext i416 %r270 to i448
%r280 = add i448 %r278, %r279
%r281 = lshr i448 %r280, 32
%r282 = trunc i448 %r281 to i416
%r283 = lshr i416 %r282, 384
%r284 = trunc i416 %r283 to i32
%r285 = trunc i416 %r282 to i384
%r286 = trunc i384 %r285 to i32
%r287 = mul i32 %r286, %r6
%r288 = call i416 @mulPv384x32(i32* %r3, i32 %r287)
%r289 = zext i32 %r284 to i416
%r290 = shl i416 %r289, 384
%r291 = add i416 %r288, %r290
%r293 = getelementptr i32, i32* %r2, i32 18
%r294 = load i32, i32* %r293
%r295 = zext i32 %r294 to i416
%r296 = shl i416 %r295, 384
%r297 = zext i384 %r285 to i416
%r298 = or i416 %r296, %r297
%r299 = zext i416 %r298 to i448
%r300 = zext i416 %r291 to i448
%r301 = add i448 %r299, %r300
%r302 = lshr i448 %r301, 32
%r303 = trunc i448 %r302 to i416
%r304 = lshr i416 %r303, 384
%r305 = trunc i416 %r304 to i32
%r306 = trunc i416 %r303 to i384
%r307 = trunc i384 %r306 to i32
%r308 = mul i32 %r307, %r6
%r309 = call i416 @mulPv384x32(i32* %r3, i32 %r308)
%r310 = zext i32 %r305 to i416
%r311 = shl i416 %r310, 384
%r312 = add i416 %r309, %r311
%r314 = getelementptr i32, i32* %r2, i32 19
%r315 = load i32, i32* %r314
%r316 = zext i32 %r315 to i416
%r317 = shl i416 %r316, 384
%r318 = zext i384 %r306 to i416
%r319 = or i416 %r317, %r318
%r320 = zext i416 %r319 to i448
%r321 = zext i416 %r312 to i448
%r322 = add i448 %r320, %r321
%r323 = lshr i448 %r322, 32
%r324 = trunc i448 %r323 to i416
%r325 = lshr i416 %r324, 384
%r326 = trunc i416 %r325 to i32
%r327 = trunc i416 %r324 to i384
%r328 = trunc i384 %r327 to i32
%r329 = mul i32 %r328, %r6
%r330 = call i416 @mulPv384x32(i32* %r3, i32 %r329)
%r331 = zext i32 %r326 to i416
%r332 = shl i416 %r331, 384
%r333 = add i416 %r330, %r332
%r335 = getelementptr i32, i32* %r2, i32 20
%r336 = load i32, i32* %r335
%r337 = zext i32 %r336 to i416
%r338 = shl i416 %r337, 384
%r339 = zext i384 %r327 to i416
%r340 = or i416 %r338, %r339
%r341 = zext i416 %r340 to i448
%r342 = zext i416 %r333 to i448
%r343 = add i448 %r341, %r342
%r344 = lshr i448 %r343, 32
%r345 = trunc i448 %r344 to i416
%r346 = lshr i416 %r345, 384
%r347 = trunc i416 %r346 to i32
%r348 = trunc i416 %r345 to i384
%r349 = trunc i384 %r348 to i32
%r350 = mul i32 %r349, %r6
%r351 = call i416 @mulPv384x32(i32* %r3, i32 %r350)
%r352 = zext i32 %r347 to i416
%r353 = shl i416 %r352, 384
%r354 = add i416 %r351, %r353
%r356 = getelementptr i32, i32* %r2, i32 21
%r357 = load i32, i32* %r356
%r358 = zext i32 %r357 to i416
%r359 = shl i416 %r358, 384
%r360 = zext i384 %r348 to i416
%r361 = or i416 %r359, %r360
%r362 = zext i416 %r361 to i448
%r363 = zext i416 %r354 to i448
%r364 = add i448 %r362, %r363
%r365 = lshr i448 %r364, 32
%r366 = trunc i448 %r365 to i416
%r367 = lshr i416 %r366, 384
%r368 = trunc i416 %r367 to i32
%r369 = trunc i416 %r366 to i384
%r370 = trunc i384 %r369 to i32
%r371 = mul i32 %r370, %r6
%r372 = call i416 @mulPv384x32(i32* %r3, i32 %r371)
%r373 = zext i32 %r368 to i416
%r374 = shl i416 %r373, 384
%r375 = add i416 %r372, %r374
%r377 = getelementptr i32, i32* %r2, i32 22
%r378 = load i32, i32* %r377
%r379 = zext i32 %r378 to i416
%r380 = shl i416 %r379, 384
%r381 = zext i384 %r369 to i416
%r382 = or i416 %r380, %r381
%r383 = zext i416 %r382 to i448
%r384 = zext i416 %r375 to i448
%r385 = add i448 %r383, %r384
%r386 = lshr i448 %r385, 32
%r387 = trunc i448 %r386 to i416
%r388 = lshr i416 %r387, 384
%r389 = trunc i416 %r388 to i32
%r390 = trunc i416 %r387 to i384
%r391 = trunc i384 %r390 to i32
%r392 = mul i32 %r391, %r6
%r393 = call i416 @mulPv384x32(i32* %r3, i32 %r392)
%r394 = zext i32 %r389 to i416
%r395 = shl i416 %r394, 384
%r396 = add i416 %r393, %r395
%r398 = getelementptr i32, i32* %r2, i32 23
%r399 = load i32, i32* %r398
%r400 = zext i32 %r399 to i416
%r401 = shl i416 %r400, 384
%r402 = zext i384 %r390 to i416
%r403 = or i416 %r401, %r402
%r404 = zext i416 %r403 to i448
%r405 = zext i416 %r396 to i448
%r406 = add i448 %r404, %r405
%r407 = lshr i448 %r406, 32
%r408 = trunc i448 %r407 to i416
%r409 = lshr i416 %r408, 384
%r410 = trunc i416 %r409 to i32
%r411 = trunc i416 %r408 to i384
%r412 = sub i384 %r411, %r84
%r413 = lshr i384 %r412, 383
%r414 = trunc i384 %r413 to i1
%r415 = select i1 %r414, i384 %r411, i384 %r412
%r417 = getelementptr i32, i32* %r1, i32 0
%r418 = trunc i384 %r415 to i32
store i32 %r418, i32* %r417
%r419 = lshr i384 %r415, 32
%r421 = getelementptr i32, i32* %r1, i32 1
%r422 = trunc i384 %r419 to i32
store i32 %r422, i32* %r421
%r423 = lshr i384 %r419, 32
%r425 = getelementptr i32, i32* %r1, i32 2
%r426 = trunc i384 %r423 to i32
store i32 %r426, i32* %r425
%r427 = lshr i384 %r423, 32
%r429 = getelementptr i32, i32* %r1, i32 3
%r430 = trunc i384 %r427 to i32
store i32 %r430, i32* %r429
%r431 = lshr i384 %r427, 32
%r433 = getelementptr i32, i32* %r1, i32 4
%r434 = trunc i384 %r431 to i32
store i32 %r434, i32* %r433
%r435 = lshr i384 %r431, 32
%r437 = getelementptr i32, i32* %r1, i32 5
%r438 = trunc i384 %r435 to i32
store i32 %r438, i32* %r437
%r439 = lshr i384 %r435, 32
%r441 = getelementptr i32, i32* %r1, i32 6
%r442 = trunc i384 %r439 to i32
store i32 %r442, i32* %r441
%r443 = lshr i384 %r439, 32
%r445 = getelementptr i32, i32* %r1, i32 7
%r446 = trunc i384 %r443 to i32
store i32 %r446, i32* %r445
%r447 = lshr i384 %r443, 32
%r449 = getelementptr i32, i32* %r1, i32 8
%r450 = trunc i384 %r447 to i32
store i32 %r450, i32* %r449
%r451 = lshr i384 %r447, 32
%r453 = getelementptr i32, i32* %r1, i32 9
%r454 = trunc i384 %r451 to i32
store i32 %r454, i32* %r453
%r455 = lshr i384 %r451, 32
%r457 = getelementptr i32, i32* %r1, i32 10
%r458 = trunc i384 %r455 to i32
store i32 %r458, i32* %r457
%r459 = lshr i384 %r455, 32
%r461 = getelementptr i32, i32* %r1, i32 11
%r462 = trunc i384 %r459 to i32
store i32 %r462, i32* %r461
ret void
}
define i32 @mcl_fp_addPre12L(i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r3
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r3, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r3, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r3, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r3, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r3, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r3, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r3, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r3, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r3, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r3, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r3, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = zext i384 %r82 to i416
%r84 = load i32, i32* %r4
%r85 = zext i32 %r84 to i64
%r87 = getelementptr i32, i32* %r4, i32 1
%r88 = load i32, i32* %r87
%r89 = zext i32 %r88 to i64
%r90 = shl i64 %r89, 32
%r91 = or i64 %r85, %r90
%r92 = zext i64 %r91 to i96
%r94 = getelementptr i32, i32* %r4, i32 2
%r95 = load i32, i32* %r94
%r96 = zext i32 %r95 to i96
%r97 = shl i96 %r96, 64
%r98 = or i96 %r92, %r97
%r99 = zext i96 %r98 to i128
%r101 = getelementptr i32, i32* %r4, i32 3
%r102 = load i32, i32* %r101
%r103 = zext i32 %r102 to i128
%r104 = shl i128 %r103, 96
%r105 = or i128 %r99, %r104
%r106 = zext i128 %r105 to i160
%r108 = getelementptr i32, i32* %r4, i32 4
%r109 = load i32, i32* %r108
%r110 = zext i32 %r109 to i160
%r111 = shl i160 %r110, 128
%r112 = or i160 %r106, %r111
%r113 = zext i160 %r112 to i192
%r115 = getelementptr i32, i32* %r4, i32 5
%r116 = load i32, i32* %r115
%r117 = zext i32 %r116 to i192
%r118 = shl i192 %r117, 160
%r119 = or i192 %r113, %r118
%r120 = zext i192 %r119 to i224
%r122 = getelementptr i32, i32* %r4, i32 6
%r123 = load i32, i32* %r122
%r124 = zext i32 %r123 to i224
%r125 = shl i224 %r124, 192
%r126 = or i224 %r120, %r125
%r127 = zext i224 %r126 to i256
%r129 = getelementptr i32, i32* %r4, i32 7
%r130 = load i32, i32* %r129
%r131 = zext i32 %r130 to i256
%r132 = shl i256 %r131, 224
%r133 = or i256 %r127, %r132
%r134 = zext i256 %r133 to i288
%r136 = getelementptr i32, i32* %r4, i32 8
%r137 = load i32, i32* %r136
%r138 = zext i32 %r137 to i288
%r139 = shl i288 %r138, 256
%r140 = or i288 %r134, %r139
%r141 = zext i288 %r140 to i320
%r143 = getelementptr i32, i32* %r4, i32 9
%r144 = load i32, i32* %r143
%r145 = zext i32 %r144 to i320
%r146 = shl i320 %r145, 288
%r147 = or i320 %r141, %r146
%r148 = zext i320 %r147 to i352
%r150 = getelementptr i32, i32* %r4, i32 10
%r151 = load i32, i32* %r150
%r152 = zext i32 %r151 to i352
%r153 = shl i352 %r152, 320
%r154 = or i352 %r148, %r153
%r155 = zext i352 %r154 to i384
%r157 = getelementptr i32, i32* %r4, i32 11
%r158 = load i32, i32* %r157
%r159 = zext i32 %r158 to i384
%r160 = shl i384 %r159, 352
%r161 = or i384 %r155, %r160
%r162 = zext i384 %r161 to i416
%r163 = add i416 %r83, %r162
%r164 = trunc i416 %r163 to i384
%r166 = getelementptr i32, i32* %r2, i32 0
%r167 = trunc i384 %r164 to i32
store i32 %r167, i32* %r166
%r168 = lshr i384 %r164, 32
%r170 = getelementptr i32, i32* %r2, i32 1
%r171 = trunc i384 %r168 to i32
store i32 %r171, i32* %r170
%r172 = lshr i384 %r168, 32
%r174 = getelementptr i32, i32* %r2, i32 2
%r175 = trunc i384 %r172 to i32
store i32 %r175, i32* %r174
%r176 = lshr i384 %r172, 32
%r178 = getelementptr i32, i32* %r2, i32 3
%r179 = trunc i384 %r176 to i32
store i32 %r179, i32* %r178
%r180 = lshr i384 %r176, 32
%r182 = getelementptr i32, i32* %r2, i32 4
%r183 = trunc i384 %r180 to i32
store i32 %r183, i32* %r182
%r184 = lshr i384 %r180, 32
%r186 = getelementptr i32, i32* %r2, i32 5
%r187 = trunc i384 %r184 to i32
store i32 %r187, i32* %r186
%r188 = lshr i384 %r184, 32
%r190 = getelementptr i32, i32* %r2, i32 6
%r191 = trunc i384 %r188 to i32
store i32 %r191, i32* %r190
%r192 = lshr i384 %r188, 32
%r194 = getelementptr i32, i32* %r2, i32 7
%r195 = trunc i384 %r192 to i32
store i32 %r195, i32* %r194
%r196 = lshr i384 %r192, 32
%r198 = getelementptr i32, i32* %r2, i32 8
%r199 = trunc i384 %r196 to i32
store i32 %r199, i32* %r198
%r200 = lshr i384 %r196, 32
%r202 = getelementptr i32, i32* %r2, i32 9
%r203 = trunc i384 %r200 to i32
store i32 %r203, i32* %r202
%r204 = lshr i384 %r200, 32
%r206 = getelementptr i32, i32* %r2, i32 10
%r207 = trunc i384 %r204 to i32
store i32 %r207, i32* %r206
%r208 = lshr i384 %r204, 32
%r210 = getelementptr i32, i32* %r2, i32 11
%r211 = trunc i384 %r208 to i32
store i32 %r211, i32* %r210
%r212 = lshr i416 %r163, 384
%r213 = trunc i416 %r212 to i32
ret i32 %r213
}
define i32 @mcl_fp_subPre12L(i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r3
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r3, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r3, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r3, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r3, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r3, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r3, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r3, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r3, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r3, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r3, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r3, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = zext i384 %r82 to i416
%r84 = load i32, i32* %r4
%r85 = zext i32 %r84 to i64
%r87 = getelementptr i32, i32* %r4, i32 1
%r88 = load i32, i32* %r87
%r89 = zext i32 %r88 to i64
%r90 = shl i64 %r89, 32
%r91 = or i64 %r85, %r90
%r92 = zext i64 %r91 to i96
%r94 = getelementptr i32, i32* %r4, i32 2
%r95 = load i32, i32* %r94
%r96 = zext i32 %r95 to i96
%r97 = shl i96 %r96, 64
%r98 = or i96 %r92, %r97
%r99 = zext i96 %r98 to i128
%r101 = getelementptr i32, i32* %r4, i32 3
%r102 = load i32, i32* %r101
%r103 = zext i32 %r102 to i128
%r104 = shl i128 %r103, 96
%r105 = or i128 %r99, %r104
%r106 = zext i128 %r105 to i160
%r108 = getelementptr i32, i32* %r4, i32 4
%r109 = load i32, i32* %r108
%r110 = zext i32 %r109 to i160
%r111 = shl i160 %r110, 128
%r112 = or i160 %r106, %r111
%r113 = zext i160 %r112 to i192
%r115 = getelementptr i32, i32* %r4, i32 5
%r116 = load i32, i32* %r115
%r117 = zext i32 %r116 to i192
%r118 = shl i192 %r117, 160
%r119 = or i192 %r113, %r118
%r120 = zext i192 %r119 to i224
%r122 = getelementptr i32, i32* %r4, i32 6
%r123 = load i32, i32* %r122
%r124 = zext i32 %r123 to i224
%r125 = shl i224 %r124, 192
%r126 = or i224 %r120, %r125
%r127 = zext i224 %r126 to i256
%r129 = getelementptr i32, i32* %r4, i32 7
%r130 = load i32, i32* %r129
%r131 = zext i32 %r130 to i256
%r132 = shl i256 %r131, 224
%r133 = or i256 %r127, %r132
%r134 = zext i256 %r133 to i288
%r136 = getelementptr i32, i32* %r4, i32 8
%r137 = load i32, i32* %r136
%r138 = zext i32 %r137 to i288
%r139 = shl i288 %r138, 256
%r140 = or i288 %r134, %r139
%r141 = zext i288 %r140 to i320
%r143 = getelementptr i32, i32* %r4, i32 9
%r144 = load i32, i32* %r143
%r145 = zext i32 %r144 to i320
%r146 = shl i320 %r145, 288
%r147 = or i320 %r141, %r146
%r148 = zext i320 %r147 to i352
%r150 = getelementptr i32, i32* %r4, i32 10
%r151 = load i32, i32* %r150
%r152 = zext i32 %r151 to i352
%r153 = shl i352 %r152, 320
%r154 = or i352 %r148, %r153
%r155 = zext i352 %r154 to i384
%r157 = getelementptr i32, i32* %r4, i32 11
%r158 = load i32, i32* %r157
%r159 = zext i32 %r158 to i384
%r160 = shl i384 %r159, 352
%r161 = or i384 %r155, %r160
%r162 = zext i384 %r161 to i416
%r163 = sub i416 %r83, %r162
%r164 = trunc i416 %r163 to i384
%r166 = getelementptr i32, i32* %r2, i32 0
%r167 = trunc i384 %r164 to i32
store i32 %r167, i32* %r166
%r168 = lshr i384 %r164, 32
%r170 = getelementptr i32, i32* %r2, i32 1
%r171 = trunc i384 %r168 to i32
store i32 %r171, i32* %r170
%r172 = lshr i384 %r168, 32
%r174 = getelementptr i32, i32* %r2, i32 2
%r175 = trunc i384 %r172 to i32
store i32 %r175, i32* %r174
%r176 = lshr i384 %r172, 32
%r178 = getelementptr i32, i32* %r2, i32 3
%r179 = trunc i384 %r176 to i32
store i32 %r179, i32* %r178
%r180 = lshr i384 %r176, 32
%r182 = getelementptr i32, i32* %r2, i32 4
%r183 = trunc i384 %r180 to i32
store i32 %r183, i32* %r182
%r184 = lshr i384 %r180, 32
%r186 = getelementptr i32, i32* %r2, i32 5
%r187 = trunc i384 %r184 to i32
store i32 %r187, i32* %r186
%r188 = lshr i384 %r184, 32
%r190 = getelementptr i32, i32* %r2, i32 6
%r191 = trunc i384 %r188 to i32
store i32 %r191, i32* %r190
%r192 = lshr i384 %r188, 32
%r194 = getelementptr i32, i32* %r2, i32 7
%r195 = trunc i384 %r192 to i32
store i32 %r195, i32* %r194
%r196 = lshr i384 %r192, 32
%r198 = getelementptr i32, i32* %r2, i32 8
%r199 = trunc i384 %r196 to i32
store i32 %r199, i32* %r198
%r200 = lshr i384 %r196, 32
%r202 = getelementptr i32, i32* %r2, i32 9
%r203 = trunc i384 %r200 to i32
store i32 %r203, i32* %r202
%r204 = lshr i384 %r200, 32
%r206 = getelementptr i32, i32* %r2, i32 10
%r207 = trunc i384 %r204 to i32
store i32 %r207, i32* %r206
%r208 = lshr i384 %r204, 32
%r210 = getelementptr i32, i32* %r2, i32 11
%r211 = trunc i384 %r208 to i32
store i32 %r211, i32* %r210
%r213 = lshr i416 %r163, 384
%r214 = trunc i416 %r213 to i32
%r215 = and i32 %r214, 1
ret i32 %r215
}
define void @mcl_fp_shr1_12L(i32* noalias  %r1, i32* noalias  %r2)
{
%r3 = load i32, i32* %r2
%r4 = zext i32 %r3 to i64
%r6 = getelementptr i32, i32* %r2, i32 1
%r7 = load i32, i32* %r6
%r8 = zext i32 %r7 to i64
%r9 = shl i64 %r8, 32
%r10 = or i64 %r4, %r9
%r11 = zext i64 %r10 to i96
%r13 = getelementptr i32, i32* %r2, i32 2
%r14 = load i32, i32* %r13
%r15 = zext i32 %r14 to i96
%r16 = shl i96 %r15, 64
%r17 = or i96 %r11, %r16
%r18 = zext i96 %r17 to i128
%r20 = getelementptr i32, i32* %r2, i32 3
%r21 = load i32, i32* %r20
%r22 = zext i32 %r21 to i128
%r23 = shl i128 %r22, 96
%r24 = or i128 %r18, %r23
%r25 = zext i128 %r24 to i160
%r27 = getelementptr i32, i32* %r2, i32 4
%r28 = load i32, i32* %r27
%r29 = zext i32 %r28 to i160
%r30 = shl i160 %r29, 128
%r31 = or i160 %r25, %r30
%r32 = zext i160 %r31 to i192
%r34 = getelementptr i32, i32* %r2, i32 5
%r35 = load i32, i32* %r34
%r36 = zext i32 %r35 to i192
%r37 = shl i192 %r36, 160
%r38 = or i192 %r32, %r37
%r39 = zext i192 %r38 to i224
%r41 = getelementptr i32, i32* %r2, i32 6
%r42 = load i32, i32* %r41
%r43 = zext i32 %r42 to i224
%r44 = shl i224 %r43, 192
%r45 = or i224 %r39, %r44
%r46 = zext i224 %r45 to i256
%r48 = getelementptr i32, i32* %r2, i32 7
%r49 = load i32, i32* %r48
%r50 = zext i32 %r49 to i256
%r51 = shl i256 %r50, 224
%r52 = or i256 %r46, %r51
%r53 = zext i256 %r52 to i288
%r55 = getelementptr i32, i32* %r2, i32 8
%r56 = load i32, i32* %r55
%r57 = zext i32 %r56 to i288
%r58 = shl i288 %r57, 256
%r59 = or i288 %r53, %r58
%r60 = zext i288 %r59 to i320
%r62 = getelementptr i32, i32* %r2, i32 9
%r63 = load i32, i32* %r62
%r64 = zext i32 %r63 to i320
%r65 = shl i320 %r64, 288
%r66 = or i320 %r60, %r65
%r67 = zext i320 %r66 to i352
%r69 = getelementptr i32, i32* %r2, i32 10
%r70 = load i32, i32* %r69
%r71 = zext i32 %r70 to i352
%r72 = shl i352 %r71, 320
%r73 = or i352 %r67, %r72
%r74 = zext i352 %r73 to i384
%r76 = getelementptr i32, i32* %r2, i32 11
%r77 = load i32, i32* %r76
%r78 = zext i32 %r77 to i384
%r79 = shl i384 %r78, 352
%r80 = or i384 %r74, %r79
%r81 = lshr i384 %r80, 1
%r83 = getelementptr i32, i32* %r1, i32 0
%r84 = trunc i384 %r81 to i32
store i32 %r84, i32* %r83
%r85 = lshr i384 %r81, 32
%r87 = getelementptr i32, i32* %r1, i32 1
%r88 = trunc i384 %r85 to i32
store i32 %r88, i32* %r87
%r89 = lshr i384 %r85, 32
%r91 = getelementptr i32, i32* %r1, i32 2
%r92 = trunc i384 %r89 to i32
store i32 %r92, i32* %r91
%r93 = lshr i384 %r89, 32
%r95 = getelementptr i32, i32* %r1, i32 3
%r96 = trunc i384 %r93 to i32
store i32 %r96, i32* %r95
%r97 = lshr i384 %r93, 32
%r99 = getelementptr i32, i32* %r1, i32 4
%r100 = trunc i384 %r97 to i32
store i32 %r100, i32* %r99
%r101 = lshr i384 %r97, 32
%r103 = getelementptr i32, i32* %r1, i32 5
%r104 = trunc i384 %r101 to i32
store i32 %r104, i32* %r103
%r105 = lshr i384 %r101, 32
%r107 = getelementptr i32, i32* %r1, i32 6
%r108 = trunc i384 %r105 to i32
store i32 %r108, i32* %r107
%r109 = lshr i384 %r105, 32
%r111 = getelementptr i32, i32* %r1, i32 7
%r112 = trunc i384 %r109 to i32
store i32 %r112, i32* %r111
%r113 = lshr i384 %r109, 32
%r115 = getelementptr i32, i32* %r1, i32 8
%r116 = trunc i384 %r113 to i32
store i32 %r116, i32* %r115
%r117 = lshr i384 %r113, 32
%r119 = getelementptr i32, i32* %r1, i32 9
%r120 = trunc i384 %r117 to i32
store i32 %r120, i32* %r119
%r121 = lshr i384 %r117, 32
%r123 = getelementptr i32, i32* %r1, i32 10
%r124 = trunc i384 %r121 to i32
store i32 %r124, i32* %r123
%r125 = lshr i384 %r121, 32
%r127 = getelementptr i32, i32* %r1, i32 11
%r128 = trunc i384 %r125 to i32
store i32 %r128, i32* %r127
ret void
}
define void @mcl_fp_add12L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r2, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r2, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r2, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r2, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = load i32, i32* %r3
%r84 = zext i32 %r83 to i64
%r86 = getelementptr i32, i32* %r3, i32 1
%r87 = load i32, i32* %r86
%r88 = zext i32 %r87 to i64
%r89 = shl i64 %r88, 32
%r90 = or i64 %r84, %r89
%r91 = zext i64 %r90 to i96
%r93 = getelementptr i32, i32* %r3, i32 2
%r94 = load i32, i32* %r93
%r95 = zext i32 %r94 to i96
%r96 = shl i96 %r95, 64
%r97 = or i96 %r91, %r96
%r98 = zext i96 %r97 to i128
%r100 = getelementptr i32, i32* %r3, i32 3
%r101 = load i32, i32* %r100
%r102 = zext i32 %r101 to i128
%r103 = shl i128 %r102, 96
%r104 = or i128 %r98, %r103
%r105 = zext i128 %r104 to i160
%r107 = getelementptr i32, i32* %r3, i32 4
%r108 = load i32, i32* %r107
%r109 = zext i32 %r108 to i160
%r110 = shl i160 %r109, 128
%r111 = or i160 %r105, %r110
%r112 = zext i160 %r111 to i192
%r114 = getelementptr i32, i32* %r3, i32 5
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i192
%r117 = shl i192 %r116, 160
%r118 = or i192 %r112, %r117
%r119 = zext i192 %r118 to i224
%r121 = getelementptr i32, i32* %r3, i32 6
%r122 = load i32, i32* %r121
%r123 = zext i32 %r122 to i224
%r124 = shl i224 %r123, 192
%r125 = or i224 %r119, %r124
%r126 = zext i224 %r125 to i256
%r128 = getelementptr i32, i32* %r3, i32 7
%r129 = load i32, i32* %r128
%r130 = zext i32 %r129 to i256
%r131 = shl i256 %r130, 224
%r132 = or i256 %r126, %r131
%r133 = zext i256 %r132 to i288
%r135 = getelementptr i32, i32* %r3, i32 8
%r136 = load i32, i32* %r135
%r137 = zext i32 %r136 to i288
%r138 = shl i288 %r137, 256
%r139 = or i288 %r133, %r138
%r140 = zext i288 %r139 to i320
%r142 = getelementptr i32, i32* %r3, i32 9
%r143 = load i32, i32* %r142
%r144 = zext i32 %r143 to i320
%r145 = shl i320 %r144, 288
%r146 = or i320 %r140, %r145
%r147 = zext i320 %r146 to i352
%r149 = getelementptr i32, i32* %r3, i32 10
%r150 = load i32, i32* %r149
%r151 = zext i32 %r150 to i352
%r152 = shl i352 %r151, 320
%r153 = or i352 %r147, %r152
%r154 = zext i352 %r153 to i384
%r156 = getelementptr i32, i32* %r3, i32 11
%r157 = load i32, i32* %r156
%r158 = zext i32 %r157 to i384
%r159 = shl i384 %r158, 352
%r160 = or i384 %r154, %r159
%r161 = zext i384 %r82 to i416
%r162 = zext i384 %r160 to i416
%r163 = add i416 %r161, %r162
%r164 = load i32, i32* %r4
%r165 = zext i32 %r164 to i64
%r167 = getelementptr i32, i32* %r4, i32 1
%r168 = load i32, i32* %r167
%r169 = zext i32 %r168 to i64
%r170 = shl i64 %r169, 32
%r171 = or i64 %r165, %r170
%r172 = zext i64 %r171 to i96
%r174 = getelementptr i32, i32* %r4, i32 2
%r175 = load i32, i32* %r174
%r176 = zext i32 %r175 to i96
%r177 = shl i96 %r176, 64
%r178 = or i96 %r172, %r177
%r179 = zext i96 %r178 to i128
%r181 = getelementptr i32, i32* %r4, i32 3
%r182 = load i32, i32* %r181
%r183 = zext i32 %r182 to i128
%r184 = shl i128 %r183, 96
%r185 = or i128 %r179, %r184
%r186 = zext i128 %r185 to i160
%r188 = getelementptr i32, i32* %r4, i32 4
%r189 = load i32, i32* %r188
%r190 = zext i32 %r189 to i160
%r191 = shl i160 %r190, 128
%r192 = or i160 %r186, %r191
%r193 = zext i160 %r192 to i192
%r195 = getelementptr i32, i32* %r4, i32 5
%r196 = load i32, i32* %r195
%r197 = zext i32 %r196 to i192
%r198 = shl i192 %r197, 160
%r199 = or i192 %r193, %r198
%r200 = zext i192 %r199 to i224
%r202 = getelementptr i32, i32* %r4, i32 6
%r203 = load i32, i32* %r202
%r204 = zext i32 %r203 to i224
%r205 = shl i224 %r204, 192
%r206 = or i224 %r200, %r205
%r207 = zext i224 %r206 to i256
%r209 = getelementptr i32, i32* %r4, i32 7
%r210 = load i32, i32* %r209
%r211 = zext i32 %r210 to i256
%r212 = shl i256 %r211, 224
%r213 = or i256 %r207, %r212
%r214 = zext i256 %r213 to i288
%r216 = getelementptr i32, i32* %r4, i32 8
%r217 = load i32, i32* %r216
%r218 = zext i32 %r217 to i288
%r219 = shl i288 %r218, 256
%r220 = or i288 %r214, %r219
%r221 = zext i288 %r220 to i320
%r223 = getelementptr i32, i32* %r4, i32 9
%r224 = load i32, i32* %r223
%r225 = zext i32 %r224 to i320
%r226 = shl i320 %r225, 288
%r227 = or i320 %r221, %r226
%r228 = zext i320 %r227 to i352
%r230 = getelementptr i32, i32* %r4, i32 10
%r231 = load i32, i32* %r230
%r232 = zext i32 %r231 to i352
%r233 = shl i352 %r232, 320
%r234 = or i352 %r228, %r233
%r235 = zext i352 %r234 to i384
%r237 = getelementptr i32, i32* %r4, i32 11
%r238 = load i32, i32* %r237
%r239 = zext i32 %r238 to i384
%r240 = shl i384 %r239, 352
%r241 = or i384 %r235, %r240
%r242 = zext i384 %r241 to i416
%r243 = sub i416 %r163, %r242
%r244 = lshr i416 %r243, 384
%r245 = trunc i416 %r244 to i1
%r246 = select i1 %r245, i416 %r163, i416 %r243
%r247 = trunc i416 %r246 to i384
%r249 = getelementptr i32, i32* %r1, i32 0
%r250 = trunc i384 %r247 to i32
store i32 %r250, i32* %r249
%r251 = lshr i384 %r247, 32
%r253 = getelementptr i32, i32* %r1, i32 1
%r254 = trunc i384 %r251 to i32
store i32 %r254, i32* %r253
%r255 = lshr i384 %r251, 32
%r257 = getelementptr i32, i32* %r1, i32 2
%r258 = trunc i384 %r255 to i32
store i32 %r258, i32* %r257
%r259 = lshr i384 %r255, 32
%r261 = getelementptr i32, i32* %r1, i32 3
%r262 = trunc i384 %r259 to i32
store i32 %r262, i32* %r261
%r263 = lshr i384 %r259, 32
%r265 = getelementptr i32, i32* %r1, i32 4
%r266 = trunc i384 %r263 to i32
store i32 %r266, i32* %r265
%r267 = lshr i384 %r263, 32
%r269 = getelementptr i32, i32* %r1, i32 5
%r270 = trunc i384 %r267 to i32
store i32 %r270, i32* %r269
%r271 = lshr i384 %r267, 32
%r273 = getelementptr i32, i32* %r1, i32 6
%r274 = trunc i384 %r271 to i32
store i32 %r274, i32* %r273
%r275 = lshr i384 %r271, 32
%r277 = getelementptr i32, i32* %r1, i32 7
%r278 = trunc i384 %r275 to i32
store i32 %r278, i32* %r277
%r279 = lshr i384 %r275, 32
%r281 = getelementptr i32, i32* %r1, i32 8
%r282 = trunc i384 %r279 to i32
store i32 %r282, i32* %r281
%r283 = lshr i384 %r279, 32
%r285 = getelementptr i32, i32* %r1, i32 9
%r286 = trunc i384 %r283 to i32
store i32 %r286, i32* %r285
%r287 = lshr i384 %r283, 32
%r289 = getelementptr i32, i32* %r1, i32 10
%r290 = trunc i384 %r287 to i32
store i32 %r290, i32* %r289
%r291 = lshr i384 %r287, 32
%r293 = getelementptr i32, i32* %r1, i32 11
%r294 = trunc i384 %r291 to i32
store i32 %r294, i32* %r293
ret void
}
define void @mcl_fp_addNF12L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r2, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r2, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r2, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r2, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = load i32, i32* %r3
%r84 = zext i32 %r83 to i64
%r86 = getelementptr i32, i32* %r3, i32 1
%r87 = load i32, i32* %r86
%r88 = zext i32 %r87 to i64
%r89 = shl i64 %r88, 32
%r90 = or i64 %r84, %r89
%r91 = zext i64 %r90 to i96
%r93 = getelementptr i32, i32* %r3, i32 2
%r94 = load i32, i32* %r93
%r95 = zext i32 %r94 to i96
%r96 = shl i96 %r95, 64
%r97 = or i96 %r91, %r96
%r98 = zext i96 %r97 to i128
%r100 = getelementptr i32, i32* %r3, i32 3
%r101 = load i32, i32* %r100
%r102 = zext i32 %r101 to i128
%r103 = shl i128 %r102, 96
%r104 = or i128 %r98, %r103
%r105 = zext i128 %r104 to i160
%r107 = getelementptr i32, i32* %r3, i32 4
%r108 = load i32, i32* %r107
%r109 = zext i32 %r108 to i160
%r110 = shl i160 %r109, 128
%r111 = or i160 %r105, %r110
%r112 = zext i160 %r111 to i192
%r114 = getelementptr i32, i32* %r3, i32 5
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i192
%r117 = shl i192 %r116, 160
%r118 = or i192 %r112, %r117
%r119 = zext i192 %r118 to i224
%r121 = getelementptr i32, i32* %r3, i32 6
%r122 = load i32, i32* %r121
%r123 = zext i32 %r122 to i224
%r124 = shl i224 %r123, 192
%r125 = or i224 %r119, %r124
%r126 = zext i224 %r125 to i256
%r128 = getelementptr i32, i32* %r3, i32 7
%r129 = load i32, i32* %r128
%r130 = zext i32 %r129 to i256
%r131 = shl i256 %r130, 224
%r132 = or i256 %r126, %r131
%r133 = zext i256 %r132 to i288
%r135 = getelementptr i32, i32* %r3, i32 8
%r136 = load i32, i32* %r135
%r137 = zext i32 %r136 to i288
%r138 = shl i288 %r137, 256
%r139 = or i288 %r133, %r138
%r140 = zext i288 %r139 to i320
%r142 = getelementptr i32, i32* %r3, i32 9
%r143 = load i32, i32* %r142
%r144 = zext i32 %r143 to i320
%r145 = shl i320 %r144, 288
%r146 = or i320 %r140, %r145
%r147 = zext i320 %r146 to i352
%r149 = getelementptr i32, i32* %r3, i32 10
%r150 = load i32, i32* %r149
%r151 = zext i32 %r150 to i352
%r152 = shl i352 %r151, 320
%r153 = or i352 %r147, %r152
%r154 = zext i352 %r153 to i384
%r156 = getelementptr i32, i32* %r3, i32 11
%r157 = load i32, i32* %r156
%r158 = zext i32 %r157 to i384
%r159 = shl i384 %r158, 352
%r160 = or i384 %r154, %r159
%r161 = add i384 %r82, %r160
%r162 = load i32, i32* %r4
%r163 = zext i32 %r162 to i64
%r165 = getelementptr i32, i32* %r4, i32 1
%r166 = load i32, i32* %r165
%r167 = zext i32 %r166 to i64
%r168 = shl i64 %r167, 32
%r169 = or i64 %r163, %r168
%r170 = zext i64 %r169 to i96
%r172 = getelementptr i32, i32* %r4, i32 2
%r173 = load i32, i32* %r172
%r174 = zext i32 %r173 to i96
%r175 = shl i96 %r174, 64
%r176 = or i96 %r170, %r175
%r177 = zext i96 %r176 to i128
%r179 = getelementptr i32, i32* %r4, i32 3
%r180 = load i32, i32* %r179
%r181 = zext i32 %r180 to i128
%r182 = shl i128 %r181, 96
%r183 = or i128 %r177, %r182
%r184 = zext i128 %r183 to i160
%r186 = getelementptr i32, i32* %r4, i32 4
%r187 = load i32, i32* %r186
%r188 = zext i32 %r187 to i160
%r189 = shl i160 %r188, 128
%r190 = or i160 %r184, %r189
%r191 = zext i160 %r190 to i192
%r193 = getelementptr i32, i32* %r4, i32 5
%r194 = load i32, i32* %r193
%r195 = zext i32 %r194 to i192
%r196 = shl i192 %r195, 160
%r197 = or i192 %r191, %r196
%r198 = zext i192 %r197 to i224
%r200 = getelementptr i32, i32* %r4, i32 6
%r201 = load i32, i32* %r200
%r202 = zext i32 %r201 to i224
%r203 = shl i224 %r202, 192
%r204 = or i224 %r198, %r203
%r205 = zext i224 %r204 to i256
%r207 = getelementptr i32, i32* %r4, i32 7
%r208 = load i32, i32* %r207
%r209 = zext i32 %r208 to i256
%r210 = shl i256 %r209, 224
%r211 = or i256 %r205, %r210
%r212 = zext i256 %r211 to i288
%r214 = getelementptr i32, i32* %r4, i32 8
%r215 = load i32, i32* %r214
%r216 = zext i32 %r215 to i288
%r217 = shl i288 %r216, 256
%r218 = or i288 %r212, %r217
%r219 = zext i288 %r218 to i320
%r221 = getelementptr i32, i32* %r4, i32 9
%r222 = load i32, i32* %r221
%r223 = zext i32 %r222 to i320
%r224 = shl i320 %r223, 288
%r225 = or i320 %r219, %r224
%r226 = zext i320 %r225 to i352
%r228 = getelementptr i32, i32* %r4, i32 10
%r229 = load i32, i32* %r228
%r230 = zext i32 %r229 to i352
%r231 = shl i352 %r230, 320
%r232 = or i352 %r226, %r231
%r233 = zext i352 %r232 to i384
%r235 = getelementptr i32, i32* %r4, i32 11
%r236 = load i32, i32* %r235
%r237 = zext i32 %r236 to i384
%r238 = shl i384 %r237, 352
%r239 = or i384 %r233, %r238
%r240 = sub i384 %r161, %r239
%r241 = lshr i384 %r240, 383
%r242 = trunc i384 %r241 to i1
%r243 = select i1 %r242, i384 %r161, i384 %r240
%r245 = getelementptr i32, i32* %r1, i32 0
%r246 = trunc i384 %r243 to i32
store i32 %r246, i32* %r245
%r247 = lshr i384 %r243, 32
%r249 = getelementptr i32, i32* %r1, i32 1
%r250 = trunc i384 %r247 to i32
store i32 %r250, i32* %r249
%r251 = lshr i384 %r247, 32
%r253 = getelementptr i32, i32* %r1, i32 2
%r254 = trunc i384 %r251 to i32
store i32 %r254, i32* %r253
%r255 = lshr i384 %r251, 32
%r257 = getelementptr i32, i32* %r1, i32 3
%r258 = trunc i384 %r255 to i32
store i32 %r258, i32* %r257
%r259 = lshr i384 %r255, 32
%r261 = getelementptr i32, i32* %r1, i32 4
%r262 = trunc i384 %r259 to i32
store i32 %r262, i32* %r261
%r263 = lshr i384 %r259, 32
%r265 = getelementptr i32, i32* %r1, i32 5
%r266 = trunc i384 %r263 to i32
store i32 %r266, i32* %r265
%r267 = lshr i384 %r263, 32
%r269 = getelementptr i32, i32* %r1, i32 6
%r270 = trunc i384 %r267 to i32
store i32 %r270, i32* %r269
%r271 = lshr i384 %r267, 32
%r273 = getelementptr i32, i32* %r1, i32 7
%r274 = trunc i384 %r271 to i32
store i32 %r274, i32* %r273
%r275 = lshr i384 %r271, 32
%r277 = getelementptr i32, i32* %r1, i32 8
%r278 = trunc i384 %r275 to i32
store i32 %r278, i32* %r277
%r279 = lshr i384 %r275, 32
%r281 = getelementptr i32, i32* %r1, i32 9
%r282 = trunc i384 %r279 to i32
store i32 %r282, i32* %r281
%r283 = lshr i384 %r279, 32
%r285 = getelementptr i32, i32* %r1, i32 10
%r286 = trunc i384 %r283 to i32
store i32 %r286, i32* %r285
%r287 = lshr i384 %r283, 32
%r289 = getelementptr i32, i32* %r1, i32 11
%r290 = trunc i384 %r287 to i32
store i32 %r290, i32* %r289
ret void
}
define void @mcl_fp_sub12L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r2, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r2, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r2, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r2, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = load i32, i32* %r3
%r84 = zext i32 %r83 to i64
%r86 = getelementptr i32, i32* %r3, i32 1
%r87 = load i32, i32* %r86
%r88 = zext i32 %r87 to i64
%r89 = shl i64 %r88, 32
%r90 = or i64 %r84, %r89
%r91 = zext i64 %r90 to i96
%r93 = getelementptr i32, i32* %r3, i32 2
%r94 = load i32, i32* %r93
%r95 = zext i32 %r94 to i96
%r96 = shl i96 %r95, 64
%r97 = or i96 %r91, %r96
%r98 = zext i96 %r97 to i128
%r100 = getelementptr i32, i32* %r3, i32 3
%r101 = load i32, i32* %r100
%r102 = zext i32 %r101 to i128
%r103 = shl i128 %r102, 96
%r104 = or i128 %r98, %r103
%r105 = zext i128 %r104 to i160
%r107 = getelementptr i32, i32* %r3, i32 4
%r108 = load i32, i32* %r107
%r109 = zext i32 %r108 to i160
%r110 = shl i160 %r109, 128
%r111 = or i160 %r105, %r110
%r112 = zext i160 %r111 to i192
%r114 = getelementptr i32, i32* %r3, i32 5
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i192
%r117 = shl i192 %r116, 160
%r118 = or i192 %r112, %r117
%r119 = zext i192 %r118 to i224
%r121 = getelementptr i32, i32* %r3, i32 6
%r122 = load i32, i32* %r121
%r123 = zext i32 %r122 to i224
%r124 = shl i224 %r123, 192
%r125 = or i224 %r119, %r124
%r126 = zext i224 %r125 to i256
%r128 = getelementptr i32, i32* %r3, i32 7
%r129 = load i32, i32* %r128
%r130 = zext i32 %r129 to i256
%r131 = shl i256 %r130, 224
%r132 = or i256 %r126, %r131
%r133 = zext i256 %r132 to i288
%r135 = getelementptr i32, i32* %r3, i32 8
%r136 = load i32, i32* %r135
%r137 = zext i32 %r136 to i288
%r138 = shl i288 %r137, 256
%r139 = or i288 %r133, %r138
%r140 = zext i288 %r139 to i320
%r142 = getelementptr i32, i32* %r3, i32 9
%r143 = load i32, i32* %r142
%r144 = zext i32 %r143 to i320
%r145 = shl i320 %r144, 288
%r146 = or i320 %r140, %r145
%r147 = zext i320 %r146 to i352
%r149 = getelementptr i32, i32* %r3, i32 10
%r150 = load i32, i32* %r149
%r151 = zext i32 %r150 to i352
%r152 = shl i352 %r151, 320
%r153 = or i352 %r147, %r152
%r154 = zext i352 %r153 to i384
%r156 = getelementptr i32, i32* %r3, i32 11
%r157 = load i32, i32* %r156
%r158 = zext i32 %r157 to i384
%r159 = shl i384 %r158, 352
%r160 = or i384 %r154, %r159
%r161 = zext i384 %r82 to i385
%r162 = zext i384 %r160 to i385
%r163 = sub i385 %r161, %r162
%r164 = lshr i385 %r163, 384
%r165 = trunc i385 %r164 to i1
%r166 = trunc i385 %r163 to i384
%r167 = load i32, i32* %r4
%r168 = zext i32 %r167 to i64
%r170 = getelementptr i32, i32* %r4, i32 1
%r171 = load i32, i32* %r170
%r172 = zext i32 %r171 to i64
%r173 = shl i64 %r172, 32
%r174 = or i64 %r168, %r173
%r175 = zext i64 %r174 to i96
%r177 = getelementptr i32, i32* %r4, i32 2
%r178 = load i32, i32* %r177
%r179 = zext i32 %r178 to i96
%r180 = shl i96 %r179, 64
%r181 = or i96 %r175, %r180
%r182 = zext i96 %r181 to i128
%r184 = getelementptr i32, i32* %r4, i32 3
%r185 = load i32, i32* %r184
%r186 = zext i32 %r185 to i128
%r187 = shl i128 %r186, 96
%r188 = or i128 %r182, %r187
%r189 = zext i128 %r188 to i160
%r191 = getelementptr i32, i32* %r4, i32 4
%r192 = load i32, i32* %r191
%r193 = zext i32 %r192 to i160
%r194 = shl i160 %r193, 128
%r195 = or i160 %r189, %r194
%r196 = zext i160 %r195 to i192
%r198 = getelementptr i32, i32* %r4, i32 5
%r199 = load i32, i32* %r198
%r200 = zext i32 %r199 to i192
%r201 = shl i192 %r200, 160
%r202 = or i192 %r196, %r201
%r203 = zext i192 %r202 to i224
%r205 = getelementptr i32, i32* %r4, i32 6
%r206 = load i32, i32* %r205
%r207 = zext i32 %r206 to i224
%r208 = shl i224 %r207, 192
%r209 = or i224 %r203, %r208
%r210 = zext i224 %r209 to i256
%r212 = getelementptr i32, i32* %r4, i32 7
%r213 = load i32, i32* %r212
%r214 = zext i32 %r213 to i256
%r215 = shl i256 %r214, 224
%r216 = or i256 %r210, %r215
%r217 = zext i256 %r216 to i288
%r219 = getelementptr i32, i32* %r4, i32 8
%r220 = load i32, i32* %r219
%r221 = zext i32 %r220 to i288
%r222 = shl i288 %r221, 256
%r223 = or i288 %r217, %r222
%r224 = zext i288 %r223 to i320
%r226 = getelementptr i32, i32* %r4, i32 9
%r227 = load i32, i32* %r226
%r228 = zext i32 %r227 to i320
%r229 = shl i320 %r228, 288
%r230 = or i320 %r224, %r229
%r231 = zext i320 %r230 to i352
%r233 = getelementptr i32, i32* %r4, i32 10
%r234 = load i32, i32* %r233
%r235 = zext i32 %r234 to i352
%r236 = shl i352 %r235, 320
%r237 = or i352 %r231, %r236
%r238 = zext i352 %r237 to i384
%r240 = getelementptr i32, i32* %r4, i32 11
%r241 = load i32, i32* %r240
%r242 = zext i32 %r241 to i384
%r243 = shl i384 %r242, 352
%r244 = or i384 %r238, %r243
%r246 = select i1 %r165, i384 %r244, i384 0
%r247 = add i384 %r166, %r246
%r249 = getelementptr i32, i32* %r1, i32 0
%r250 = trunc i384 %r247 to i32
store i32 %r250, i32* %r249
%r251 = lshr i384 %r247, 32
%r253 = getelementptr i32, i32* %r1, i32 1
%r254 = trunc i384 %r251 to i32
store i32 %r254, i32* %r253
%r255 = lshr i384 %r251, 32
%r257 = getelementptr i32, i32* %r1, i32 2
%r258 = trunc i384 %r255 to i32
store i32 %r258, i32* %r257
%r259 = lshr i384 %r255, 32
%r261 = getelementptr i32, i32* %r1, i32 3
%r262 = trunc i384 %r259 to i32
store i32 %r262, i32* %r261
%r263 = lshr i384 %r259, 32
%r265 = getelementptr i32, i32* %r1, i32 4
%r266 = trunc i384 %r263 to i32
store i32 %r266, i32* %r265
%r267 = lshr i384 %r263, 32
%r269 = getelementptr i32, i32* %r1, i32 5
%r270 = trunc i384 %r267 to i32
store i32 %r270, i32* %r269
%r271 = lshr i384 %r267, 32
%r273 = getelementptr i32, i32* %r1, i32 6
%r274 = trunc i384 %r271 to i32
store i32 %r274, i32* %r273
%r275 = lshr i384 %r271, 32
%r277 = getelementptr i32, i32* %r1, i32 7
%r278 = trunc i384 %r275 to i32
store i32 %r278, i32* %r277
%r279 = lshr i384 %r275, 32
%r281 = getelementptr i32, i32* %r1, i32 8
%r282 = trunc i384 %r279 to i32
store i32 %r282, i32* %r281
%r283 = lshr i384 %r279, 32
%r285 = getelementptr i32, i32* %r1, i32 9
%r286 = trunc i384 %r283 to i32
store i32 %r286, i32* %r285
%r287 = lshr i384 %r283, 32
%r289 = getelementptr i32, i32* %r1, i32 10
%r290 = trunc i384 %r287 to i32
store i32 %r290, i32* %r289
%r291 = lshr i384 %r287, 32
%r293 = getelementptr i32, i32* %r1, i32 11
%r294 = trunc i384 %r291 to i32
store i32 %r294, i32* %r293
ret void
}
define void @mcl_fp_subNF12L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r2, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r2, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r2, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r2, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = load i32, i32* %r3
%r84 = zext i32 %r83 to i64
%r86 = getelementptr i32, i32* %r3, i32 1
%r87 = load i32, i32* %r86
%r88 = zext i32 %r87 to i64
%r89 = shl i64 %r88, 32
%r90 = or i64 %r84, %r89
%r91 = zext i64 %r90 to i96
%r93 = getelementptr i32, i32* %r3, i32 2
%r94 = load i32, i32* %r93
%r95 = zext i32 %r94 to i96
%r96 = shl i96 %r95, 64
%r97 = or i96 %r91, %r96
%r98 = zext i96 %r97 to i128
%r100 = getelementptr i32, i32* %r3, i32 3
%r101 = load i32, i32* %r100
%r102 = zext i32 %r101 to i128
%r103 = shl i128 %r102, 96
%r104 = or i128 %r98, %r103
%r105 = zext i128 %r104 to i160
%r107 = getelementptr i32, i32* %r3, i32 4
%r108 = load i32, i32* %r107
%r109 = zext i32 %r108 to i160
%r110 = shl i160 %r109, 128
%r111 = or i160 %r105, %r110
%r112 = zext i160 %r111 to i192
%r114 = getelementptr i32, i32* %r3, i32 5
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i192
%r117 = shl i192 %r116, 160
%r118 = or i192 %r112, %r117
%r119 = zext i192 %r118 to i224
%r121 = getelementptr i32, i32* %r3, i32 6
%r122 = load i32, i32* %r121
%r123 = zext i32 %r122 to i224
%r124 = shl i224 %r123, 192
%r125 = or i224 %r119, %r124
%r126 = zext i224 %r125 to i256
%r128 = getelementptr i32, i32* %r3, i32 7
%r129 = load i32, i32* %r128
%r130 = zext i32 %r129 to i256
%r131 = shl i256 %r130, 224
%r132 = or i256 %r126, %r131
%r133 = zext i256 %r132 to i288
%r135 = getelementptr i32, i32* %r3, i32 8
%r136 = load i32, i32* %r135
%r137 = zext i32 %r136 to i288
%r138 = shl i288 %r137, 256
%r139 = or i288 %r133, %r138
%r140 = zext i288 %r139 to i320
%r142 = getelementptr i32, i32* %r3, i32 9
%r143 = load i32, i32* %r142
%r144 = zext i32 %r143 to i320
%r145 = shl i320 %r144, 288
%r146 = or i320 %r140, %r145
%r147 = zext i320 %r146 to i352
%r149 = getelementptr i32, i32* %r3, i32 10
%r150 = load i32, i32* %r149
%r151 = zext i32 %r150 to i352
%r152 = shl i352 %r151, 320
%r153 = or i352 %r147, %r152
%r154 = zext i352 %r153 to i384
%r156 = getelementptr i32, i32* %r3, i32 11
%r157 = load i32, i32* %r156
%r158 = zext i32 %r157 to i384
%r159 = shl i384 %r158, 352
%r160 = or i384 %r154, %r159
%r161 = sub i384 %r82, %r160
%r162 = lshr i384 %r161, 383
%r163 = trunc i384 %r162 to i1
%r164 = load i32, i32* %r4
%r165 = zext i32 %r164 to i64
%r167 = getelementptr i32, i32* %r4, i32 1
%r168 = load i32, i32* %r167
%r169 = zext i32 %r168 to i64
%r170 = shl i64 %r169, 32
%r171 = or i64 %r165, %r170
%r172 = zext i64 %r171 to i96
%r174 = getelementptr i32, i32* %r4, i32 2
%r175 = load i32, i32* %r174
%r176 = zext i32 %r175 to i96
%r177 = shl i96 %r176, 64
%r178 = or i96 %r172, %r177
%r179 = zext i96 %r178 to i128
%r181 = getelementptr i32, i32* %r4, i32 3
%r182 = load i32, i32* %r181
%r183 = zext i32 %r182 to i128
%r184 = shl i128 %r183, 96
%r185 = or i128 %r179, %r184
%r186 = zext i128 %r185 to i160
%r188 = getelementptr i32, i32* %r4, i32 4
%r189 = load i32, i32* %r188
%r190 = zext i32 %r189 to i160
%r191 = shl i160 %r190, 128
%r192 = or i160 %r186, %r191
%r193 = zext i160 %r192 to i192
%r195 = getelementptr i32, i32* %r4, i32 5
%r196 = load i32, i32* %r195
%r197 = zext i32 %r196 to i192
%r198 = shl i192 %r197, 160
%r199 = or i192 %r193, %r198
%r200 = zext i192 %r199 to i224
%r202 = getelementptr i32, i32* %r4, i32 6
%r203 = load i32, i32* %r202
%r204 = zext i32 %r203 to i224
%r205 = shl i224 %r204, 192
%r206 = or i224 %r200, %r205
%r207 = zext i224 %r206 to i256
%r209 = getelementptr i32, i32* %r4, i32 7
%r210 = load i32, i32* %r209
%r211 = zext i32 %r210 to i256
%r212 = shl i256 %r211, 224
%r213 = or i256 %r207, %r212
%r214 = zext i256 %r213 to i288
%r216 = getelementptr i32, i32* %r4, i32 8
%r217 = load i32, i32* %r216
%r218 = zext i32 %r217 to i288
%r219 = shl i288 %r218, 256
%r220 = or i288 %r214, %r219
%r221 = zext i288 %r220 to i320
%r223 = getelementptr i32, i32* %r4, i32 9
%r224 = load i32, i32* %r223
%r225 = zext i32 %r224 to i320
%r226 = shl i320 %r225, 288
%r227 = or i320 %r221, %r226
%r228 = zext i320 %r227 to i352
%r230 = getelementptr i32, i32* %r4, i32 10
%r231 = load i32, i32* %r230
%r232 = zext i32 %r231 to i352
%r233 = shl i352 %r232, 320
%r234 = or i352 %r228, %r233
%r235 = zext i352 %r234 to i384
%r237 = getelementptr i32, i32* %r4, i32 11
%r238 = load i32, i32* %r237
%r239 = zext i32 %r238 to i384
%r240 = shl i384 %r239, 352
%r241 = or i384 %r235, %r240
%r243 = select i1 %r163, i384 %r241, i384 0
%r244 = add i384 %r161, %r243
%r246 = getelementptr i32, i32* %r1, i32 0
%r247 = trunc i384 %r244 to i32
store i32 %r247, i32* %r246
%r248 = lshr i384 %r244, 32
%r250 = getelementptr i32, i32* %r1, i32 1
%r251 = trunc i384 %r248 to i32
store i32 %r251, i32* %r250
%r252 = lshr i384 %r248, 32
%r254 = getelementptr i32, i32* %r1, i32 2
%r255 = trunc i384 %r252 to i32
store i32 %r255, i32* %r254
%r256 = lshr i384 %r252, 32
%r258 = getelementptr i32, i32* %r1, i32 3
%r259 = trunc i384 %r256 to i32
store i32 %r259, i32* %r258
%r260 = lshr i384 %r256, 32
%r262 = getelementptr i32, i32* %r1, i32 4
%r263 = trunc i384 %r260 to i32
store i32 %r263, i32* %r262
%r264 = lshr i384 %r260, 32
%r266 = getelementptr i32, i32* %r1, i32 5
%r267 = trunc i384 %r264 to i32
store i32 %r267, i32* %r266
%r268 = lshr i384 %r264, 32
%r270 = getelementptr i32, i32* %r1, i32 6
%r271 = trunc i384 %r268 to i32
store i32 %r271, i32* %r270
%r272 = lshr i384 %r268, 32
%r274 = getelementptr i32, i32* %r1, i32 7
%r275 = trunc i384 %r272 to i32
store i32 %r275, i32* %r274
%r276 = lshr i384 %r272, 32
%r278 = getelementptr i32, i32* %r1, i32 8
%r279 = trunc i384 %r276 to i32
store i32 %r279, i32* %r278
%r280 = lshr i384 %r276, 32
%r282 = getelementptr i32, i32* %r1, i32 9
%r283 = trunc i384 %r280 to i32
store i32 %r283, i32* %r282
%r284 = lshr i384 %r280, 32
%r286 = getelementptr i32, i32* %r1, i32 10
%r287 = trunc i384 %r284 to i32
store i32 %r287, i32* %r286
%r288 = lshr i384 %r284, 32
%r290 = getelementptr i32, i32* %r1, i32 11
%r291 = trunc i384 %r288 to i32
store i32 %r291, i32* %r290
ret void
}
define void @mcl_fpDbl_add12L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r2, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r2, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r2, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r2, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = zext i384 %r82 to i416
%r85 = getelementptr i32, i32* %r2, i32 12
%r86 = load i32, i32* %r85
%r87 = zext i32 %r86 to i416
%r88 = shl i416 %r87, 384
%r89 = or i416 %r83, %r88
%r90 = zext i416 %r89 to i448
%r92 = getelementptr i32, i32* %r2, i32 13
%r93 = load i32, i32* %r92
%r94 = zext i32 %r93 to i448
%r95 = shl i448 %r94, 416
%r96 = or i448 %r90, %r95
%r97 = zext i448 %r96 to i480
%r99 = getelementptr i32, i32* %r2, i32 14
%r100 = load i32, i32* %r99
%r101 = zext i32 %r100 to i480
%r102 = shl i480 %r101, 448
%r103 = or i480 %r97, %r102
%r104 = zext i480 %r103 to i512
%r106 = getelementptr i32, i32* %r2, i32 15
%r107 = load i32, i32* %r106
%r108 = zext i32 %r107 to i512
%r109 = shl i512 %r108, 480
%r110 = or i512 %r104, %r109
%r111 = zext i512 %r110 to i544
%r113 = getelementptr i32, i32* %r2, i32 16
%r114 = load i32, i32* %r113
%r115 = zext i32 %r114 to i544
%r116 = shl i544 %r115, 512
%r117 = or i544 %r111, %r116
%r118 = zext i544 %r117 to i576
%r120 = getelementptr i32, i32* %r2, i32 17
%r121 = load i32, i32* %r120
%r122 = zext i32 %r121 to i576
%r123 = shl i576 %r122, 544
%r124 = or i576 %r118, %r123
%r125 = zext i576 %r124 to i608
%r127 = getelementptr i32, i32* %r2, i32 18
%r128 = load i32, i32* %r127
%r129 = zext i32 %r128 to i608
%r130 = shl i608 %r129, 576
%r131 = or i608 %r125, %r130
%r132 = zext i608 %r131 to i640
%r134 = getelementptr i32, i32* %r2, i32 19
%r135 = load i32, i32* %r134
%r136 = zext i32 %r135 to i640
%r137 = shl i640 %r136, 608
%r138 = or i640 %r132, %r137
%r139 = zext i640 %r138 to i672
%r141 = getelementptr i32, i32* %r2, i32 20
%r142 = load i32, i32* %r141
%r143 = zext i32 %r142 to i672
%r144 = shl i672 %r143, 640
%r145 = or i672 %r139, %r144
%r146 = zext i672 %r145 to i704
%r148 = getelementptr i32, i32* %r2, i32 21
%r149 = load i32, i32* %r148
%r150 = zext i32 %r149 to i704
%r151 = shl i704 %r150, 672
%r152 = or i704 %r146, %r151
%r153 = zext i704 %r152 to i736
%r155 = getelementptr i32, i32* %r2, i32 22
%r156 = load i32, i32* %r155
%r157 = zext i32 %r156 to i736
%r158 = shl i736 %r157, 704
%r159 = or i736 %r153, %r158
%r160 = zext i736 %r159 to i768
%r162 = getelementptr i32, i32* %r2, i32 23
%r163 = load i32, i32* %r162
%r164 = zext i32 %r163 to i768
%r165 = shl i768 %r164, 736
%r166 = or i768 %r160, %r165
%r167 = load i32, i32* %r3
%r168 = zext i32 %r167 to i64
%r170 = getelementptr i32, i32* %r3, i32 1
%r171 = load i32, i32* %r170
%r172 = zext i32 %r171 to i64
%r173 = shl i64 %r172, 32
%r174 = or i64 %r168, %r173
%r175 = zext i64 %r174 to i96
%r177 = getelementptr i32, i32* %r3, i32 2
%r178 = load i32, i32* %r177
%r179 = zext i32 %r178 to i96
%r180 = shl i96 %r179, 64
%r181 = or i96 %r175, %r180
%r182 = zext i96 %r181 to i128
%r184 = getelementptr i32, i32* %r3, i32 3
%r185 = load i32, i32* %r184
%r186 = zext i32 %r185 to i128
%r187 = shl i128 %r186, 96
%r188 = or i128 %r182, %r187
%r189 = zext i128 %r188 to i160
%r191 = getelementptr i32, i32* %r3, i32 4
%r192 = load i32, i32* %r191
%r193 = zext i32 %r192 to i160
%r194 = shl i160 %r193, 128
%r195 = or i160 %r189, %r194
%r196 = zext i160 %r195 to i192
%r198 = getelementptr i32, i32* %r3, i32 5
%r199 = load i32, i32* %r198
%r200 = zext i32 %r199 to i192
%r201 = shl i192 %r200, 160
%r202 = or i192 %r196, %r201
%r203 = zext i192 %r202 to i224
%r205 = getelementptr i32, i32* %r3, i32 6
%r206 = load i32, i32* %r205
%r207 = zext i32 %r206 to i224
%r208 = shl i224 %r207, 192
%r209 = or i224 %r203, %r208
%r210 = zext i224 %r209 to i256
%r212 = getelementptr i32, i32* %r3, i32 7
%r213 = load i32, i32* %r212
%r214 = zext i32 %r213 to i256
%r215 = shl i256 %r214, 224
%r216 = or i256 %r210, %r215
%r217 = zext i256 %r216 to i288
%r219 = getelementptr i32, i32* %r3, i32 8
%r220 = load i32, i32* %r219
%r221 = zext i32 %r220 to i288
%r222 = shl i288 %r221, 256
%r223 = or i288 %r217, %r222
%r224 = zext i288 %r223 to i320
%r226 = getelementptr i32, i32* %r3, i32 9
%r227 = load i32, i32* %r226
%r228 = zext i32 %r227 to i320
%r229 = shl i320 %r228, 288
%r230 = or i320 %r224, %r229
%r231 = zext i320 %r230 to i352
%r233 = getelementptr i32, i32* %r3, i32 10
%r234 = load i32, i32* %r233
%r235 = zext i32 %r234 to i352
%r236 = shl i352 %r235, 320
%r237 = or i352 %r231, %r236
%r238 = zext i352 %r237 to i384
%r240 = getelementptr i32, i32* %r3, i32 11
%r241 = load i32, i32* %r240
%r242 = zext i32 %r241 to i384
%r243 = shl i384 %r242, 352
%r244 = or i384 %r238, %r243
%r245 = zext i384 %r244 to i416
%r247 = getelementptr i32, i32* %r3, i32 12
%r248 = load i32, i32* %r247
%r249 = zext i32 %r248 to i416
%r250 = shl i416 %r249, 384
%r251 = or i416 %r245, %r250
%r252 = zext i416 %r251 to i448
%r254 = getelementptr i32, i32* %r3, i32 13
%r255 = load i32, i32* %r254
%r256 = zext i32 %r255 to i448
%r257 = shl i448 %r256, 416
%r258 = or i448 %r252, %r257
%r259 = zext i448 %r258 to i480
%r261 = getelementptr i32, i32* %r3, i32 14
%r262 = load i32, i32* %r261
%r263 = zext i32 %r262 to i480
%r264 = shl i480 %r263, 448
%r265 = or i480 %r259, %r264
%r266 = zext i480 %r265 to i512
%r268 = getelementptr i32, i32* %r3, i32 15
%r269 = load i32, i32* %r268
%r270 = zext i32 %r269 to i512
%r271 = shl i512 %r270, 480
%r272 = or i512 %r266, %r271
%r273 = zext i512 %r272 to i544
%r275 = getelementptr i32, i32* %r3, i32 16
%r276 = load i32, i32* %r275
%r277 = zext i32 %r276 to i544
%r278 = shl i544 %r277, 512
%r279 = or i544 %r273, %r278
%r280 = zext i544 %r279 to i576
%r282 = getelementptr i32, i32* %r3, i32 17
%r283 = load i32, i32* %r282
%r284 = zext i32 %r283 to i576
%r285 = shl i576 %r284, 544
%r286 = or i576 %r280, %r285
%r287 = zext i576 %r286 to i608
%r289 = getelementptr i32, i32* %r3, i32 18
%r290 = load i32, i32* %r289
%r291 = zext i32 %r290 to i608
%r292 = shl i608 %r291, 576
%r293 = or i608 %r287, %r292
%r294 = zext i608 %r293 to i640
%r296 = getelementptr i32, i32* %r3, i32 19
%r297 = load i32, i32* %r296
%r298 = zext i32 %r297 to i640
%r299 = shl i640 %r298, 608
%r300 = or i640 %r294, %r299
%r301 = zext i640 %r300 to i672
%r303 = getelementptr i32, i32* %r3, i32 20
%r304 = load i32, i32* %r303
%r305 = zext i32 %r304 to i672
%r306 = shl i672 %r305, 640
%r307 = or i672 %r301, %r306
%r308 = zext i672 %r307 to i704
%r310 = getelementptr i32, i32* %r3, i32 21
%r311 = load i32, i32* %r310
%r312 = zext i32 %r311 to i704
%r313 = shl i704 %r312, 672
%r314 = or i704 %r308, %r313
%r315 = zext i704 %r314 to i736
%r317 = getelementptr i32, i32* %r3, i32 22
%r318 = load i32, i32* %r317
%r319 = zext i32 %r318 to i736
%r320 = shl i736 %r319, 704
%r321 = or i736 %r315, %r320
%r322 = zext i736 %r321 to i768
%r324 = getelementptr i32, i32* %r3, i32 23
%r325 = load i32, i32* %r324
%r326 = zext i32 %r325 to i768
%r327 = shl i768 %r326, 736
%r328 = or i768 %r322, %r327
%r329 = zext i768 %r166 to i800
%r330 = zext i768 %r328 to i800
%r331 = add i800 %r329, %r330
%r332 = trunc i800 %r331 to i384
%r334 = getelementptr i32, i32* %r1, i32 0
%r335 = trunc i384 %r332 to i32
store i32 %r335, i32* %r334
%r336 = lshr i384 %r332, 32
%r338 = getelementptr i32, i32* %r1, i32 1
%r339 = trunc i384 %r336 to i32
store i32 %r339, i32* %r338
%r340 = lshr i384 %r336, 32
%r342 = getelementptr i32, i32* %r1, i32 2
%r343 = trunc i384 %r340 to i32
store i32 %r343, i32* %r342
%r344 = lshr i384 %r340, 32
%r346 = getelementptr i32, i32* %r1, i32 3
%r347 = trunc i384 %r344 to i32
store i32 %r347, i32* %r346
%r348 = lshr i384 %r344, 32
%r350 = getelementptr i32, i32* %r1, i32 4
%r351 = trunc i384 %r348 to i32
store i32 %r351, i32* %r350
%r352 = lshr i384 %r348, 32
%r354 = getelementptr i32, i32* %r1, i32 5
%r355 = trunc i384 %r352 to i32
store i32 %r355, i32* %r354
%r356 = lshr i384 %r352, 32
%r358 = getelementptr i32, i32* %r1, i32 6
%r359 = trunc i384 %r356 to i32
store i32 %r359, i32* %r358
%r360 = lshr i384 %r356, 32
%r362 = getelementptr i32, i32* %r1, i32 7
%r363 = trunc i384 %r360 to i32
store i32 %r363, i32* %r362
%r364 = lshr i384 %r360, 32
%r366 = getelementptr i32, i32* %r1, i32 8
%r367 = trunc i384 %r364 to i32
store i32 %r367, i32* %r366
%r368 = lshr i384 %r364, 32
%r370 = getelementptr i32, i32* %r1, i32 9
%r371 = trunc i384 %r368 to i32
store i32 %r371, i32* %r370
%r372 = lshr i384 %r368, 32
%r374 = getelementptr i32, i32* %r1, i32 10
%r375 = trunc i384 %r372 to i32
store i32 %r375, i32* %r374
%r376 = lshr i384 %r372, 32
%r378 = getelementptr i32, i32* %r1, i32 11
%r379 = trunc i384 %r376 to i32
store i32 %r379, i32* %r378
%r380 = lshr i800 %r331, 384
%r381 = trunc i800 %r380 to i416
%r382 = load i32, i32* %r4
%r383 = zext i32 %r382 to i64
%r385 = getelementptr i32, i32* %r4, i32 1
%r386 = load i32, i32* %r385
%r387 = zext i32 %r386 to i64
%r388 = shl i64 %r387, 32
%r389 = or i64 %r383, %r388
%r390 = zext i64 %r389 to i96
%r392 = getelementptr i32, i32* %r4, i32 2
%r393 = load i32, i32* %r392
%r394 = zext i32 %r393 to i96
%r395 = shl i96 %r394, 64
%r396 = or i96 %r390, %r395
%r397 = zext i96 %r396 to i128
%r399 = getelementptr i32, i32* %r4, i32 3
%r400 = load i32, i32* %r399
%r401 = zext i32 %r400 to i128
%r402 = shl i128 %r401, 96
%r403 = or i128 %r397, %r402
%r404 = zext i128 %r403 to i160
%r406 = getelementptr i32, i32* %r4, i32 4
%r407 = load i32, i32* %r406
%r408 = zext i32 %r407 to i160
%r409 = shl i160 %r408, 128
%r410 = or i160 %r404, %r409
%r411 = zext i160 %r410 to i192
%r413 = getelementptr i32, i32* %r4, i32 5
%r414 = load i32, i32* %r413
%r415 = zext i32 %r414 to i192
%r416 = shl i192 %r415, 160
%r417 = or i192 %r411, %r416
%r418 = zext i192 %r417 to i224
%r420 = getelementptr i32, i32* %r4, i32 6
%r421 = load i32, i32* %r420
%r422 = zext i32 %r421 to i224
%r423 = shl i224 %r422, 192
%r424 = or i224 %r418, %r423
%r425 = zext i224 %r424 to i256
%r427 = getelementptr i32, i32* %r4, i32 7
%r428 = load i32, i32* %r427
%r429 = zext i32 %r428 to i256
%r430 = shl i256 %r429, 224
%r431 = or i256 %r425, %r430
%r432 = zext i256 %r431 to i288
%r434 = getelementptr i32, i32* %r4, i32 8
%r435 = load i32, i32* %r434
%r436 = zext i32 %r435 to i288
%r437 = shl i288 %r436, 256
%r438 = or i288 %r432, %r437
%r439 = zext i288 %r438 to i320
%r441 = getelementptr i32, i32* %r4, i32 9
%r442 = load i32, i32* %r441
%r443 = zext i32 %r442 to i320
%r444 = shl i320 %r443, 288
%r445 = or i320 %r439, %r444
%r446 = zext i320 %r445 to i352
%r448 = getelementptr i32, i32* %r4, i32 10
%r449 = load i32, i32* %r448
%r450 = zext i32 %r449 to i352
%r451 = shl i352 %r450, 320
%r452 = or i352 %r446, %r451
%r453 = zext i352 %r452 to i384
%r455 = getelementptr i32, i32* %r4, i32 11
%r456 = load i32, i32* %r455
%r457 = zext i32 %r456 to i384
%r458 = shl i384 %r457, 352
%r459 = or i384 %r453, %r458
%r460 = zext i384 %r459 to i416
%r461 = sub i416 %r381, %r460
%r462 = lshr i416 %r461, 384
%r463 = trunc i416 %r462 to i1
%r464 = select i1 %r463, i416 %r381, i416 %r461
%r465 = trunc i416 %r464 to i384
%r467 = getelementptr i32, i32* %r1, i32 12
%r469 = getelementptr i32, i32* %r467, i32 0
%r470 = trunc i384 %r465 to i32
store i32 %r470, i32* %r469
%r471 = lshr i384 %r465, 32
%r473 = getelementptr i32, i32* %r467, i32 1
%r474 = trunc i384 %r471 to i32
store i32 %r474, i32* %r473
%r475 = lshr i384 %r471, 32
%r477 = getelementptr i32, i32* %r467, i32 2
%r478 = trunc i384 %r475 to i32
store i32 %r478, i32* %r477
%r479 = lshr i384 %r475, 32
%r481 = getelementptr i32, i32* %r467, i32 3
%r482 = trunc i384 %r479 to i32
store i32 %r482, i32* %r481
%r483 = lshr i384 %r479, 32
%r485 = getelementptr i32, i32* %r467, i32 4
%r486 = trunc i384 %r483 to i32
store i32 %r486, i32* %r485
%r487 = lshr i384 %r483, 32
%r489 = getelementptr i32, i32* %r467, i32 5
%r490 = trunc i384 %r487 to i32
store i32 %r490, i32* %r489
%r491 = lshr i384 %r487, 32
%r493 = getelementptr i32, i32* %r467, i32 6
%r494 = trunc i384 %r491 to i32
store i32 %r494, i32* %r493
%r495 = lshr i384 %r491, 32
%r497 = getelementptr i32, i32* %r467, i32 7
%r498 = trunc i384 %r495 to i32
store i32 %r498, i32* %r497
%r499 = lshr i384 %r495, 32
%r501 = getelementptr i32, i32* %r467, i32 8
%r502 = trunc i384 %r499 to i32
store i32 %r502, i32* %r501
%r503 = lshr i384 %r499, 32
%r505 = getelementptr i32, i32* %r467, i32 9
%r506 = trunc i384 %r503 to i32
store i32 %r506, i32* %r505
%r507 = lshr i384 %r503, 32
%r509 = getelementptr i32, i32* %r467, i32 10
%r510 = trunc i384 %r507 to i32
store i32 %r510, i32* %r509
%r511 = lshr i384 %r507, 32
%r513 = getelementptr i32, i32* %r467, i32 11
%r514 = trunc i384 %r511 to i32
store i32 %r514, i32* %r513
ret void
}
define void @mcl_fpDbl_sub12L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r2, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r2, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r2, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r2, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = zext i384 %r82 to i416
%r85 = getelementptr i32, i32* %r2, i32 12
%r86 = load i32, i32* %r85
%r87 = zext i32 %r86 to i416
%r88 = shl i416 %r87, 384
%r89 = or i416 %r83, %r88
%r90 = zext i416 %r89 to i448
%r92 = getelementptr i32, i32* %r2, i32 13
%r93 = load i32, i32* %r92
%r94 = zext i32 %r93 to i448
%r95 = shl i448 %r94, 416
%r96 = or i448 %r90, %r95
%r97 = zext i448 %r96 to i480
%r99 = getelementptr i32, i32* %r2, i32 14
%r100 = load i32, i32* %r99
%r101 = zext i32 %r100 to i480
%r102 = shl i480 %r101, 448
%r103 = or i480 %r97, %r102
%r104 = zext i480 %r103 to i512
%r106 = getelementptr i32, i32* %r2, i32 15
%r107 = load i32, i32* %r106
%r108 = zext i32 %r107 to i512
%r109 = shl i512 %r108, 480
%r110 = or i512 %r104, %r109
%r111 = zext i512 %r110 to i544
%r113 = getelementptr i32, i32* %r2, i32 16
%r114 = load i32, i32* %r113
%r115 = zext i32 %r114 to i544
%r116 = shl i544 %r115, 512
%r117 = or i544 %r111, %r116
%r118 = zext i544 %r117 to i576
%r120 = getelementptr i32, i32* %r2, i32 17
%r121 = load i32, i32* %r120
%r122 = zext i32 %r121 to i576
%r123 = shl i576 %r122, 544
%r124 = or i576 %r118, %r123
%r125 = zext i576 %r124 to i608
%r127 = getelementptr i32, i32* %r2, i32 18
%r128 = load i32, i32* %r127
%r129 = zext i32 %r128 to i608
%r130 = shl i608 %r129, 576
%r131 = or i608 %r125, %r130
%r132 = zext i608 %r131 to i640
%r134 = getelementptr i32, i32* %r2, i32 19
%r135 = load i32, i32* %r134
%r136 = zext i32 %r135 to i640
%r137 = shl i640 %r136, 608
%r138 = or i640 %r132, %r137
%r139 = zext i640 %r138 to i672
%r141 = getelementptr i32, i32* %r2, i32 20
%r142 = load i32, i32* %r141
%r143 = zext i32 %r142 to i672
%r144 = shl i672 %r143, 640
%r145 = or i672 %r139, %r144
%r146 = zext i672 %r145 to i704
%r148 = getelementptr i32, i32* %r2, i32 21
%r149 = load i32, i32* %r148
%r150 = zext i32 %r149 to i704
%r151 = shl i704 %r150, 672
%r152 = or i704 %r146, %r151
%r153 = zext i704 %r152 to i736
%r155 = getelementptr i32, i32* %r2, i32 22
%r156 = load i32, i32* %r155
%r157 = zext i32 %r156 to i736
%r158 = shl i736 %r157, 704
%r159 = or i736 %r153, %r158
%r160 = zext i736 %r159 to i768
%r162 = getelementptr i32, i32* %r2, i32 23
%r163 = load i32, i32* %r162
%r164 = zext i32 %r163 to i768
%r165 = shl i768 %r164, 736
%r166 = or i768 %r160, %r165
%r167 = load i32, i32* %r3
%r168 = zext i32 %r167 to i64
%r170 = getelementptr i32, i32* %r3, i32 1
%r171 = load i32, i32* %r170
%r172 = zext i32 %r171 to i64
%r173 = shl i64 %r172, 32
%r174 = or i64 %r168, %r173
%r175 = zext i64 %r174 to i96
%r177 = getelementptr i32, i32* %r3, i32 2
%r178 = load i32, i32* %r177
%r179 = zext i32 %r178 to i96
%r180 = shl i96 %r179, 64
%r181 = or i96 %r175, %r180
%r182 = zext i96 %r181 to i128
%r184 = getelementptr i32, i32* %r3, i32 3
%r185 = load i32, i32* %r184
%r186 = zext i32 %r185 to i128
%r187 = shl i128 %r186, 96
%r188 = or i128 %r182, %r187
%r189 = zext i128 %r188 to i160
%r191 = getelementptr i32, i32* %r3, i32 4
%r192 = load i32, i32* %r191
%r193 = zext i32 %r192 to i160
%r194 = shl i160 %r193, 128
%r195 = or i160 %r189, %r194
%r196 = zext i160 %r195 to i192
%r198 = getelementptr i32, i32* %r3, i32 5
%r199 = load i32, i32* %r198
%r200 = zext i32 %r199 to i192
%r201 = shl i192 %r200, 160
%r202 = or i192 %r196, %r201
%r203 = zext i192 %r202 to i224
%r205 = getelementptr i32, i32* %r3, i32 6
%r206 = load i32, i32* %r205
%r207 = zext i32 %r206 to i224
%r208 = shl i224 %r207, 192
%r209 = or i224 %r203, %r208
%r210 = zext i224 %r209 to i256
%r212 = getelementptr i32, i32* %r3, i32 7
%r213 = load i32, i32* %r212
%r214 = zext i32 %r213 to i256
%r215 = shl i256 %r214, 224
%r216 = or i256 %r210, %r215
%r217 = zext i256 %r216 to i288
%r219 = getelementptr i32, i32* %r3, i32 8
%r220 = load i32, i32* %r219
%r221 = zext i32 %r220 to i288
%r222 = shl i288 %r221, 256
%r223 = or i288 %r217, %r222
%r224 = zext i288 %r223 to i320
%r226 = getelementptr i32, i32* %r3, i32 9
%r227 = load i32, i32* %r226
%r228 = zext i32 %r227 to i320
%r229 = shl i320 %r228, 288
%r230 = or i320 %r224, %r229
%r231 = zext i320 %r230 to i352
%r233 = getelementptr i32, i32* %r3, i32 10
%r234 = load i32, i32* %r233
%r235 = zext i32 %r234 to i352
%r236 = shl i352 %r235, 320
%r237 = or i352 %r231, %r236
%r238 = zext i352 %r237 to i384
%r240 = getelementptr i32, i32* %r3, i32 11
%r241 = load i32, i32* %r240
%r242 = zext i32 %r241 to i384
%r243 = shl i384 %r242, 352
%r244 = or i384 %r238, %r243
%r245 = zext i384 %r244 to i416
%r247 = getelementptr i32, i32* %r3, i32 12
%r248 = load i32, i32* %r247
%r249 = zext i32 %r248 to i416
%r250 = shl i416 %r249, 384
%r251 = or i416 %r245, %r250
%r252 = zext i416 %r251 to i448
%r254 = getelementptr i32, i32* %r3, i32 13
%r255 = load i32, i32* %r254
%r256 = zext i32 %r255 to i448
%r257 = shl i448 %r256, 416
%r258 = or i448 %r252, %r257
%r259 = zext i448 %r258 to i480
%r261 = getelementptr i32, i32* %r3, i32 14
%r262 = load i32, i32* %r261
%r263 = zext i32 %r262 to i480
%r264 = shl i480 %r263, 448
%r265 = or i480 %r259, %r264
%r266 = zext i480 %r265 to i512
%r268 = getelementptr i32, i32* %r3, i32 15
%r269 = load i32, i32* %r268
%r270 = zext i32 %r269 to i512
%r271 = shl i512 %r270, 480
%r272 = or i512 %r266, %r271
%r273 = zext i512 %r272 to i544
%r275 = getelementptr i32, i32* %r3, i32 16
%r276 = load i32, i32* %r275
%r277 = zext i32 %r276 to i544
%r278 = shl i544 %r277, 512
%r279 = or i544 %r273, %r278
%r280 = zext i544 %r279 to i576
%r282 = getelementptr i32, i32* %r3, i32 17
%r283 = load i32, i32* %r282
%r284 = zext i32 %r283 to i576
%r285 = shl i576 %r284, 544
%r286 = or i576 %r280, %r285
%r287 = zext i576 %r286 to i608
%r289 = getelementptr i32, i32* %r3, i32 18
%r290 = load i32, i32* %r289
%r291 = zext i32 %r290 to i608
%r292 = shl i608 %r291, 576
%r293 = or i608 %r287, %r292
%r294 = zext i608 %r293 to i640
%r296 = getelementptr i32, i32* %r3, i32 19
%r297 = load i32, i32* %r296
%r298 = zext i32 %r297 to i640
%r299 = shl i640 %r298, 608
%r300 = or i640 %r294, %r299
%r301 = zext i640 %r300 to i672
%r303 = getelementptr i32, i32* %r3, i32 20
%r304 = load i32, i32* %r303
%r305 = zext i32 %r304 to i672
%r306 = shl i672 %r305, 640
%r307 = or i672 %r301, %r306
%r308 = zext i672 %r307 to i704
%r310 = getelementptr i32, i32* %r3, i32 21
%r311 = load i32, i32* %r310
%r312 = zext i32 %r311 to i704
%r313 = shl i704 %r312, 672
%r314 = or i704 %r308, %r313
%r315 = zext i704 %r314 to i736
%r317 = getelementptr i32, i32* %r3, i32 22
%r318 = load i32, i32* %r317
%r319 = zext i32 %r318 to i736
%r320 = shl i736 %r319, 704
%r321 = or i736 %r315, %r320
%r322 = zext i736 %r321 to i768
%r324 = getelementptr i32, i32* %r3, i32 23
%r325 = load i32, i32* %r324
%r326 = zext i32 %r325 to i768
%r327 = shl i768 %r326, 736
%r328 = or i768 %r322, %r327
%r329 = zext i768 %r166 to i800
%r330 = zext i768 %r328 to i800
%r331 = sub i800 %r329, %r330
%r332 = trunc i800 %r331 to i384
%r334 = getelementptr i32, i32* %r1, i32 0
%r335 = trunc i384 %r332 to i32
store i32 %r335, i32* %r334
%r336 = lshr i384 %r332, 32
%r338 = getelementptr i32, i32* %r1, i32 1
%r339 = trunc i384 %r336 to i32
store i32 %r339, i32* %r338
%r340 = lshr i384 %r336, 32
%r342 = getelementptr i32, i32* %r1, i32 2
%r343 = trunc i384 %r340 to i32
store i32 %r343, i32* %r342
%r344 = lshr i384 %r340, 32
%r346 = getelementptr i32, i32* %r1, i32 3
%r347 = trunc i384 %r344 to i32
store i32 %r347, i32* %r346
%r348 = lshr i384 %r344, 32
%r350 = getelementptr i32, i32* %r1, i32 4
%r351 = trunc i384 %r348 to i32
store i32 %r351, i32* %r350
%r352 = lshr i384 %r348, 32
%r354 = getelementptr i32, i32* %r1, i32 5
%r355 = trunc i384 %r352 to i32
store i32 %r355, i32* %r354
%r356 = lshr i384 %r352, 32
%r358 = getelementptr i32, i32* %r1, i32 6
%r359 = trunc i384 %r356 to i32
store i32 %r359, i32* %r358
%r360 = lshr i384 %r356, 32
%r362 = getelementptr i32, i32* %r1, i32 7
%r363 = trunc i384 %r360 to i32
store i32 %r363, i32* %r362
%r364 = lshr i384 %r360, 32
%r366 = getelementptr i32, i32* %r1, i32 8
%r367 = trunc i384 %r364 to i32
store i32 %r367, i32* %r366
%r368 = lshr i384 %r364, 32
%r370 = getelementptr i32, i32* %r1, i32 9
%r371 = trunc i384 %r368 to i32
store i32 %r371, i32* %r370
%r372 = lshr i384 %r368, 32
%r374 = getelementptr i32, i32* %r1, i32 10
%r375 = trunc i384 %r372 to i32
store i32 %r375, i32* %r374
%r376 = lshr i384 %r372, 32
%r378 = getelementptr i32, i32* %r1, i32 11
%r379 = trunc i384 %r376 to i32
store i32 %r379, i32* %r378
%r380 = lshr i800 %r331, 384
%r381 = trunc i800 %r380 to i384
%r382 = lshr i800 %r331, 768
%r383 = trunc i800 %r382 to i1
%r384 = load i32, i32* %r4
%r385 = zext i32 %r384 to i64
%r387 = getelementptr i32, i32* %r4, i32 1
%r388 = load i32, i32* %r387
%r389 = zext i32 %r388 to i64
%r390 = shl i64 %r389, 32
%r391 = or i64 %r385, %r390
%r392 = zext i64 %r391 to i96
%r394 = getelementptr i32, i32* %r4, i32 2
%r395 = load i32, i32* %r394
%r396 = zext i32 %r395 to i96
%r397 = shl i96 %r396, 64
%r398 = or i96 %r392, %r397
%r399 = zext i96 %r398 to i128
%r401 = getelementptr i32, i32* %r4, i32 3
%r402 = load i32, i32* %r401
%r403 = zext i32 %r402 to i128
%r404 = shl i128 %r403, 96
%r405 = or i128 %r399, %r404
%r406 = zext i128 %r405 to i160
%r408 = getelementptr i32, i32* %r4, i32 4
%r409 = load i32, i32* %r408
%r410 = zext i32 %r409 to i160
%r411 = shl i160 %r410, 128
%r412 = or i160 %r406, %r411
%r413 = zext i160 %r412 to i192
%r415 = getelementptr i32, i32* %r4, i32 5
%r416 = load i32, i32* %r415
%r417 = zext i32 %r416 to i192
%r418 = shl i192 %r417, 160
%r419 = or i192 %r413, %r418
%r420 = zext i192 %r419 to i224
%r422 = getelementptr i32, i32* %r4, i32 6
%r423 = load i32, i32* %r422
%r424 = zext i32 %r423 to i224
%r425 = shl i224 %r424, 192
%r426 = or i224 %r420, %r425
%r427 = zext i224 %r426 to i256
%r429 = getelementptr i32, i32* %r4, i32 7
%r430 = load i32, i32* %r429
%r431 = zext i32 %r430 to i256
%r432 = shl i256 %r431, 224
%r433 = or i256 %r427, %r432
%r434 = zext i256 %r433 to i288
%r436 = getelementptr i32, i32* %r4, i32 8
%r437 = load i32, i32* %r436
%r438 = zext i32 %r437 to i288
%r439 = shl i288 %r438, 256
%r440 = or i288 %r434, %r439
%r441 = zext i288 %r440 to i320
%r443 = getelementptr i32, i32* %r4, i32 9
%r444 = load i32, i32* %r443
%r445 = zext i32 %r444 to i320
%r446 = shl i320 %r445, 288
%r447 = or i320 %r441, %r446
%r448 = zext i320 %r447 to i352
%r450 = getelementptr i32, i32* %r4, i32 10
%r451 = load i32, i32* %r450
%r452 = zext i32 %r451 to i352
%r453 = shl i352 %r452, 320
%r454 = or i352 %r448, %r453
%r455 = zext i352 %r454 to i384
%r457 = getelementptr i32, i32* %r4, i32 11
%r458 = load i32, i32* %r457
%r459 = zext i32 %r458 to i384
%r460 = shl i384 %r459, 352
%r461 = or i384 %r455, %r460
%r463 = select i1 %r383, i384 %r461, i384 0
%r464 = add i384 %r381, %r463
%r466 = getelementptr i32, i32* %r1, i32 12
%r468 = getelementptr i32, i32* %r466, i32 0
%r469 = trunc i384 %r464 to i32
store i32 %r469, i32* %r468
%r470 = lshr i384 %r464, 32
%r472 = getelementptr i32, i32* %r466, i32 1
%r473 = trunc i384 %r470 to i32
store i32 %r473, i32* %r472
%r474 = lshr i384 %r470, 32
%r476 = getelementptr i32, i32* %r466, i32 2
%r477 = trunc i384 %r474 to i32
store i32 %r477, i32* %r476
%r478 = lshr i384 %r474, 32
%r480 = getelementptr i32, i32* %r466, i32 3
%r481 = trunc i384 %r478 to i32
store i32 %r481, i32* %r480
%r482 = lshr i384 %r478, 32
%r484 = getelementptr i32, i32* %r466, i32 4
%r485 = trunc i384 %r482 to i32
store i32 %r485, i32* %r484
%r486 = lshr i384 %r482, 32
%r488 = getelementptr i32, i32* %r466, i32 5
%r489 = trunc i384 %r486 to i32
store i32 %r489, i32* %r488
%r490 = lshr i384 %r486, 32
%r492 = getelementptr i32, i32* %r466, i32 6
%r493 = trunc i384 %r490 to i32
store i32 %r493, i32* %r492
%r494 = lshr i384 %r490, 32
%r496 = getelementptr i32, i32* %r466, i32 7
%r497 = trunc i384 %r494 to i32
store i32 %r497, i32* %r496
%r498 = lshr i384 %r494, 32
%r500 = getelementptr i32, i32* %r466, i32 8
%r501 = trunc i384 %r498 to i32
store i32 %r501, i32* %r500
%r502 = lshr i384 %r498, 32
%r504 = getelementptr i32, i32* %r466, i32 9
%r505 = trunc i384 %r502 to i32
store i32 %r505, i32* %r504
%r506 = lshr i384 %r502, 32
%r508 = getelementptr i32, i32* %r466, i32 10
%r509 = trunc i384 %r506 to i32
store i32 %r509, i32* %r508
%r510 = lshr i384 %r506, 32
%r512 = getelementptr i32, i32* %r466, i32 11
%r513 = trunc i384 %r510 to i32
store i32 %r513, i32* %r512
ret void
}
define i544 @mulPv512x32(i32* noalias  %r2, i32 %r3)
{
%r5 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 0)
%r6 = trunc i64 %r5 to i32
%r7 = call i32 @extractHigh32(i64 %r5)
%r9 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 1)
%r10 = trunc i64 %r9 to i32
%r11 = call i32 @extractHigh32(i64 %r9)
%r13 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 2)
%r14 = trunc i64 %r13 to i32
%r15 = call i32 @extractHigh32(i64 %r13)
%r17 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 3)
%r18 = trunc i64 %r17 to i32
%r19 = call i32 @extractHigh32(i64 %r17)
%r21 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 4)
%r22 = trunc i64 %r21 to i32
%r23 = call i32 @extractHigh32(i64 %r21)
%r25 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 5)
%r26 = trunc i64 %r25 to i32
%r27 = call i32 @extractHigh32(i64 %r25)
%r29 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 6)
%r30 = trunc i64 %r29 to i32
%r31 = call i32 @extractHigh32(i64 %r29)
%r33 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 7)
%r34 = trunc i64 %r33 to i32
%r35 = call i32 @extractHigh32(i64 %r33)
%r37 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 8)
%r38 = trunc i64 %r37 to i32
%r39 = call i32 @extractHigh32(i64 %r37)
%r41 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 9)
%r42 = trunc i64 %r41 to i32
%r43 = call i32 @extractHigh32(i64 %r41)
%r45 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 10)
%r46 = trunc i64 %r45 to i32
%r47 = call i32 @extractHigh32(i64 %r45)
%r49 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 11)
%r50 = trunc i64 %r49 to i32
%r51 = call i32 @extractHigh32(i64 %r49)
%r53 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 12)
%r54 = trunc i64 %r53 to i32
%r55 = call i32 @extractHigh32(i64 %r53)
%r57 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 13)
%r58 = trunc i64 %r57 to i32
%r59 = call i32 @extractHigh32(i64 %r57)
%r61 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 14)
%r62 = trunc i64 %r61 to i32
%r63 = call i32 @extractHigh32(i64 %r61)
%r65 = call i64 @mulPos32x32(i32* %r2, i32 %r3, i32 15)
%r66 = trunc i64 %r65 to i32
%r67 = call i32 @extractHigh32(i64 %r65)
%r68 = zext i32 %r6 to i64
%r69 = zext i32 %r10 to i64
%r70 = shl i64 %r69, 32
%r71 = or i64 %r68, %r70
%r72 = zext i64 %r71 to i96
%r73 = zext i32 %r14 to i96
%r74 = shl i96 %r73, 64
%r75 = or i96 %r72, %r74
%r76 = zext i96 %r75 to i128
%r77 = zext i32 %r18 to i128
%r78 = shl i128 %r77, 96
%r79 = or i128 %r76, %r78
%r80 = zext i128 %r79 to i160
%r81 = zext i32 %r22 to i160
%r82 = shl i160 %r81, 128
%r83 = or i160 %r80, %r82
%r84 = zext i160 %r83 to i192
%r85 = zext i32 %r26 to i192
%r86 = shl i192 %r85, 160
%r87 = or i192 %r84, %r86
%r88 = zext i192 %r87 to i224
%r89 = zext i32 %r30 to i224
%r90 = shl i224 %r89, 192
%r91 = or i224 %r88, %r90
%r92 = zext i224 %r91 to i256
%r93 = zext i32 %r34 to i256
%r94 = shl i256 %r93, 224
%r95 = or i256 %r92, %r94
%r96 = zext i256 %r95 to i288
%r97 = zext i32 %r38 to i288
%r98 = shl i288 %r97, 256
%r99 = or i288 %r96, %r98
%r100 = zext i288 %r99 to i320
%r101 = zext i32 %r42 to i320
%r102 = shl i320 %r101, 288
%r103 = or i320 %r100, %r102
%r104 = zext i320 %r103 to i352
%r105 = zext i32 %r46 to i352
%r106 = shl i352 %r105, 320
%r107 = or i352 %r104, %r106
%r108 = zext i352 %r107 to i384
%r109 = zext i32 %r50 to i384
%r110 = shl i384 %r109, 352
%r111 = or i384 %r108, %r110
%r112 = zext i384 %r111 to i416
%r113 = zext i32 %r54 to i416
%r114 = shl i416 %r113, 384
%r115 = or i416 %r112, %r114
%r116 = zext i416 %r115 to i448
%r117 = zext i32 %r58 to i448
%r118 = shl i448 %r117, 416
%r119 = or i448 %r116, %r118
%r120 = zext i448 %r119 to i480
%r121 = zext i32 %r62 to i480
%r122 = shl i480 %r121, 448
%r123 = or i480 %r120, %r122
%r124 = zext i480 %r123 to i512
%r125 = zext i32 %r66 to i512
%r126 = shl i512 %r125, 480
%r127 = or i512 %r124, %r126
%r128 = zext i32 %r7 to i64
%r129 = zext i32 %r11 to i64
%r130 = shl i64 %r129, 32
%r131 = or i64 %r128, %r130
%r132 = zext i64 %r131 to i96
%r133 = zext i32 %r15 to i96
%r134 = shl i96 %r133, 64
%r135 = or i96 %r132, %r134
%r136 = zext i96 %r135 to i128
%r137 = zext i32 %r19 to i128
%r138 = shl i128 %r137, 96
%r139 = or i128 %r136, %r138
%r140 = zext i128 %r139 to i160
%r141 = zext i32 %r23 to i160
%r142 = shl i160 %r141, 128
%r143 = or i160 %r140, %r142
%r144 = zext i160 %r143 to i192
%r145 = zext i32 %r27 to i192
%r146 = shl i192 %r145, 160
%r147 = or i192 %r144, %r146
%r148 = zext i192 %r147 to i224
%r149 = zext i32 %r31 to i224
%r150 = shl i224 %r149, 192
%r151 = or i224 %r148, %r150
%r152 = zext i224 %r151 to i256
%r153 = zext i32 %r35 to i256
%r154 = shl i256 %r153, 224
%r155 = or i256 %r152, %r154
%r156 = zext i256 %r155 to i288
%r157 = zext i32 %r39 to i288
%r158 = shl i288 %r157, 256
%r159 = or i288 %r156, %r158
%r160 = zext i288 %r159 to i320
%r161 = zext i32 %r43 to i320
%r162 = shl i320 %r161, 288
%r163 = or i320 %r160, %r162
%r164 = zext i320 %r163 to i352
%r165 = zext i32 %r47 to i352
%r166 = shl i352 %r165, 320
%r167 = or i352 %r164, %r166
%r168 = zext i352 %r167 to i384
%r169 = zext i32 %r51 to i384
%r170 = shl i384 %r169, 352
%r171 = or i384 %r168, %r170
%r172 = zext i384 %r171 to i416
%r173 = zext i32 %r55 to i416
%r174 = shl i416 %r173, 384
%r175 = or i416 %r172, %r174
%r176 = zext i416 %r175 to i448
%r177 = zext i32 %r59 to i448
%r178 = shl i448 %r177, 416
%r179 = or i448 %r176, %r178
%r180 = zext i448 %r179 to i480
%r181 = zext i32 %r63 to i480
%r182 = shl i480 %r181, 448
%r183 = or i480 %r180, %r182
%r184 = zext i480 %r183 to i512
%r185 = zext i32 %r67 to i512
%r186 = shl i512 %r185, 480
%r187 = or i512 %r184, %r186
%r188 = zext i512 %r127 to i544
%r189 = zext i512 %r187 to i544
%r190 = shl i544 %r189, 32
%r191 = add i544 %r188, %r190
ret i544 %r191
}
define void @mcl_fp_mont16L(i32* %r1, i32* %r2, i32* %r3, i32* %r4)
{
%r6 = getelementptr i32, i32* %r4, i32 -1
%r7 = load i32, i32* %r6
%r9 = getelementptr i32, i32* %r3, i32 0
%r10 = load i32, i32* %r9
%r11 = call i544 @mulPv512x32(i32* %r2, i32 %r10)
%r12 = zext i544 %r11 to i576
%r13 = trunc i544 %r11 to i32
%r14 = mul i32 %r13, %r7
%r15 = call i544 @mulPv512x32(i32* %r4, i32 %r14)
%r16 = zext i544 %r15 to i576
%r17 = add i576 %r12, %r16
%r18 = lshr i576 %r17, 32
%r20 = getelementptr i32, i32* %r3, i32 1
%r21 = load i32, i32* %r20
%r22 = call i544 @mulPv512x32(i32* %r2, i32 %r21)
%r23 = zext i544 %r22 to i576
%r24 = add i576 %r18, %r23
%r25 = trunc i576 %r24 to i32
%r26 = mul i32 %r25, %r7
%r27 = call i544 @mulPv512x32(i32* %r4, i32 %r26)
%r28 = zext i544 %r27 to i576
%r29 = add i576 %r24, %r28
%r30 = lshr i576 %r29, 32
%r32 = getelementptr i32, i32* %r3, i32 2
%r33 = load i32, i32* %r32
%r34 = call i544 @mulPv512x32(i32* %r2, i32 %r33)
%r35 = zext i544 %r34 to i576
%r36 = add i576 %r30, %r35
%r37 = trunc i576 %r36 to i32
%r38 = mul i32 %r37, %r7
%r39 = call i544 @mulPv512x32(i32* %r4, i32 %r38)
%r40 = zext i544 %r39 to i576
%r41 = add i576 %r36, %r40
%r42 = lshr i576 %r41, 32
%r44 = getelementptr i32, i32* %r3, i32 3
%r45 = load i32, i32* %r44
%r46 = call i544 @mulPv512x32(i32* %r2, i32 %r45)
%r47 = zext i544 %r46 to i576
%r48 = add i576 %r42, %r47
%r49 = trunc i576 %r48 to i32
%r50 = mul i32 %r49, %r7
%r51 = call i544 @mulPv512x32(i32* %r4, i32 %r50)
%r52 = zext i544 %r51 to i576
%r53 = add i576 %r48, %r52
%r54 = lshr i576 %r53, 32
%r56 = getelementptr i32, i32* %r3, i32 4
%r57 = load i32, i32* %r56
%r58 = call i544 @mulPv512x32(i32* %r2, i32 %r57)
%r59 = zext i544 %r58 to i576
%r60 = add i576 %r54, %r59
%r61 = trunc i576 %r60 to i32
%r62 = mul i32 %r61, %r7
%r63 = call i544 @mulPv512x32(i32* %r4, i32 %r62)
%r64 = zext i544 %r63 to i576
%r65 = add i576 %r60, %r64
%r66 = lshr i576 %r65, 32
%r68 = getelementptr i32, i32* %r3, i32 5
%r69 = load i32, i32* %r68
%r70 = call i544 @mulPv512x32(i32* %r2, i32 %r69)
%r71 = zext i544 %r70 to i576
%r72 = add i576 %r66, %r71
%r73 = trunc i576 %r72 to i32
%r74 = mul i32 %r73, %r7
%r75 = call i544 @mulPv512x32(i32* %r4, i32 %r74)
%r76 = zext i544 %r75 to i576
%r77 = add i576 %r72, %r76
%r78 = lshr i576 %r77, 32
%r80 = getelementptr i32, i32* %r3, i32 6
%r81 = load i32, i32* %r80
%r82 = call i544 @mulPv512x32(i32* %r2, i32 %r81)
%r83 = zext i544 %r82 to i576
%r84 = add i576 %r78, %r83
%r85 = trunc i576 %r84 to i32
%r86 = mul i32 %r85, %r7
%r87 = call i544 @mulPv512x32(i32* %r4, i32 %r86)
%r88 = zext i544 %r87 to i576
%r89 = add i576 %r84, %r88
%r90 = lshr i576 %r89, 32
%r92 = getelementptr i32, i32* %r3, i32 7
%r93 = load i32, i32* %r92
%r94 = call i544 @mulPv512x32(i32* %r2, i32 %r93)
%r95 = zext i544 %r94 to i576
%r96 = add i576 %r90, %r95
%r97 = trunc i576 %r96 to i32
%r98 = mul i32 %r97, %r7
%r99 = call i544 @mulPv512x32(i32* %r4, i32 %r98)
%r100 = zext i544 %r99 to i576
%r101 = add i576 %r96, %r100
%r102 = lshr i576 %r101, 32
%r104 = getelementptr i32, i32* %r3, i32 8
%r105 = load i32, i32* %r104
%r106 = call i544 @mulPv512x32(i32* %r2, i32 %r105)
%r107 = zext i544 %r106 to i576
%r108 = add i576 %r102, %r107
%r109 = trunc i576 %r108 to i32
%r110 = mul i32 %r109, %r7
%r111 = call i544 @mulPv512x32(i32* %r4, i32 %r110)
%r112 = zext i544 %r111 to i576
%r113 = add i576 %r108, %r112
%r114 = lshr i576 %r113, 32
%r116 = getelementptr i32, i32* %r3, i32 9
%r117 = load i32, i32* %r116
%r118 = call i544 @mulPv512x32(i32* %r2, i32 %r117)
%r119 = zext i544 %r118 to i576
%r120 = add i576 %r114, %r119
%r121 = trunc i576 %r120 to i32
%r122 = mul i32 %r121, %r7
%r123 = call i544 @mulPv512x32(i32* %r4, i32 %r122)
%r124 = zext i544 %r123 to i576
%r125 = add i576 %r120, %r124
%r126 = lshr i576 %r125, 32
%r128 = getelementptr i32, i32* %r3, i32 10
%r129 = load i32, i32* %r128
%r130 = call i544 @mulPv512x32(i32* %r2, i32 %r129)
%r131 = zext i544 %r130 to i576
%r132 = add i576 %r126, %r131
%r133 = trunc i576 %r132 to i32
%r134 = mul i32 %r133, %r7
%r135 = call i544 @mulPv512x32(i32* %r4, i32 %r134)
%r136 = zext i544 %r135 to i576
%r137 = add i576 %r132, %r136
%r138 = lshr i576 %r137, 32
%r140 = getelementptr i32, i32* %r3, i32 11
%r141 = load i32, i32* %r140
%r142 = call i544 @mulPv512x32(i32* %r2, i32 %r141)
%r143 = zext i544 %r142 to i576
%r144 = add i576 %r138, %r143
%r145 = trunc i576 %r144 to i32
%r146 = mul i32 %r145, %r7
%r147 = call i544 @mulPv512x32(i32* %r4, i32 %r146)
%r148 = zext i544 %r147 to i576
%r149 = add i576 %r144, %r148
%r150 = lshr i576 %r149, 32
%r152 = getelementptr i32, i32* %r3, i32 12
%r153 = load i32, i32* %r152
%r154 = call i544 @mulPv512x32(i32* %r2, i32 %r153)
%r155 = zext i544 %r154 to i576
%r156 = add i576 %r150, %r155
%r157 = trunc i576 %r156 to i32
%r158 = mul i32 %r157, %r7
%r159 = call i544 @mulPv512x32(i32* %r4, i32 %r158)
%r160 = zext i544 %r159 to i576
%r161 = add i576 %r156, %r160
%r162 = lshr i576 %r161, 32
%r164 = getelementptr i32, i32* %r3, i32 13
%r165 = load i32, i32* %r164
%r166 = call i544 @mulPv512x32(i32* %r2, i32 %r165)
%r167 = zext i544 %r166 to i576
%r168 = add i576 %r162, %r167
%r169 = trunc i576 %r168 to i32
%r170 = mul i32 %r169, %r7
%r171 = call i544 @mulPv512x32(i32* %r4, i32 %r170)
%r172 = zext i544 %r171 to i576
%r173 = add i576 %r168, %r172
%r174 = lshr i576 %r173, 32
%r176 = getelementptr i32, i32* %r3, i32 14
%r177 = load i32, i32* %r176
%r178 = call i544 @mulPv512x32(i32* %r2, i32 %r177)
%r179 = zext i544 %r178 to i576
%r180 = add i576 %r174, %r179
%r181 = trunc i576 %r180 to i32
%r182 = mul i32 %r181, %r7
%r183 = call i544 @mulPv512x32(i32* %r4, i32 %r182)
%r184 = zext i544 %r183 to i576
%r185 = add i576 %r180, %r184
%r186 = lshr i576 %r185, 32
%r188 = getelementptr i32, i32* %r3, i32 15
%r189 = load i32, i32* %r188
%r190 = call i544 @mulPv512x32(i32* %r2, i32 %r189)
%r191 = zext i544 %r190 to i576
%r192 = add i576 %r186, %r191
%r193 = trunc i576 %r192 to i32
%r194 = mul i32 %r193, %r7
%r195 = call i544 @mulPv512x32(i32* %r4, i32 %r194)
%r196 = zext i544 %r195 to i576
%r197 = add i576 %r192, %r196
%r198 = lshr i576 %r197, 32
%r199 = trunc i576 %r198 to i544
%r200 = load i32, i32* %r4
%r201 = zext i32 %r200 to i64
%r203 = getelementptr i32, i32* %r4, i32 1
%r204 = load i32, i32* %r203
%r205 = zext i32 %r204 to i64
%r206 = shl i64 %r205, 32
%r207 = or i64 %r201, %r206
%r208 = zext i64 %r207 to i96
%r210 = getelementptr i32, i32* %r4, i32 2
%r211 = load i32, i32* %r210
%r212 = zext i32 %r211 to i96
%r213 = shl i96 %r212, 64
%r214 = or i96 %r208, %r213
%r215 = zext i96 %r214 to i128
%r217 = getelementptr i32, i32* %r4, i32 3
%r218 = load i32, i32* %r217
%r219 = zext i32 %r218 to i128
%r220 = shl i128 %r219, 96
%r221 = or i128 %r215, %r220
%r222 = zext i128 %r221 to i160
%r224 = getelementptr i32, i32* %r4, i32 4
%r225 = load i32, i32* %r224
%r226 = zext i32 %r225 to i160
%r227 = shl i160 %r226, 128
%r228 = or i160 %r222, %r227
%r229 = zext i160 %r228 to i192
%r231 = getelementptr i32, i32* %r4, i32 5
%r232 = load i32, i32* %r231
%r233 = zext i32 %r232 to i192
%r234 = shl i192 %r233, 160
%r235 = or i192 %r229, %r234
%r236 = zext i192 %r235 to i224
%r238 = getelementptr i32, i32* %r4, i32 6
%r239 = load i32, i32* %r238
%r240 = zext i32 %r239 to i224
%r241 = shl i224 %r240, 192
%r242 = or i224 %r236, %r241
%r243 = zext i224 %r242 to i256
%r245 = getelementptr i32, i32* %r4, i32 7
%r246 = load i32, i32* %r245
%r247 = zext i32 %r246 to i256
%r248 = shl i256 %r247, 224
%r249 = or i256 %r243, %r248
%r250 = zext i256 %r249 to i288
%r252 = getelementptr i32, i32* %r4, i32 8
%r253 = load i32, i32* %r252
%r254 = zext i32 %r253 to i288
%r255 = shl i288 %r254, 256
%r256 = or i288 %r250, %r255
%r257 = zext i288 %r256 to i320
%r259 = getelementptr i32, i32* %r4, i32 9
%r260 = load i32, i32* %r259
%r261 = zext i32 %r260 to i320
%r262 = shl i320 %r261, 288
%r263 = or i320 %r257, %r262
%r264 = zext i320 %r263 to i352
%r266 = getelementptr i32, i32* %r4, i32 10
%r267 = load i32, i32* %r266
%r268 = zext i32 %r267 to i352
%r269 = shl i352 %r268, 320
%r270 = or i352 %r264, %r269
%r271 = zext i352 %r270 to i384
%r273 = getelementptr i32, i32* %r4, i32 11
%r274 = load i32, i32* %r273
%r275 = zext i32 %r274 to i384
%r276 = shl i384 %r275, 352
%r277 = or i384 %r271, %r276
%r278 = zext i384 %r277 to i416
%r280 = getelementptr i32, i32* %r4, i32 12
%r281 = load i32, i32* %r280
%r282 = zext i32 %r281 to i416
%r283 = shl i416 %r282, 384
%r284 = or i416 %r278, %r283
%r285 = zext i416 %r284 to i448
%r287 = getelementptr i32, i32* %r4, i32 13
%r288 = load i32, i32* %r287
%r289 = zext i32 %r288 to i448
%r290 = shl i448 %r289, 416
%r291 = or i448 %r285, %r290
%r292 = zext i448 %r291 to i480
%r294 = getelementptr i32, i32* %r4, i32 14
%r295 = load i32, i32* %r294
%r296 = zext i32 %r295 to i480
%r297 = shl i480 %r296, 448
%r298 = or i480 %r292, %r297
%r299 = zext i480 %r298 to i512
%r301 = getelementptr i32, i32* %r4, i32 15
%r302 = load i32, i32* %r301
%r303 = zext i32 %r302 to i512
%r304 = shl i512 %r303, 480
%r305 = or i512 %r299, %r304
%r306 = zext i512 %r305 to i544
%r307 = sub i544 %r199, %r306
%r308 = lshr i544 %r307, 512
%r309 = trunc i544 %r308 to i1
%r310 = select i1 %r309, i544 %r199, i544 %r307
%r311 = trunc i544 %r310 to i512
%r313 = getelementptr i32, i32* %r1, i32 0
%r314 = trunc i512 %r311 to i32
store i32 %r314, i32* %r313
%r315 = lshr i512 %r311, 32
%r317 = getelementptr i32, i32* %r1, i32 1
%r318 = trunc i512 %r315 to i32
store i32 %r318, i32* %r317
%r319 = lshr i512 %r315, 32
%r321 = getelementptr i32, i32* %r1, i32 2
%r322 = trunc i512 %r319 to i32
store i32 %r322, i32* %r321
%r323 = lshr i512 %r319, 32
%r325 = getelementptr i32, i32* %r1, i32 3
%r326 = trunc i512 %r323 to i32
store i32 %r326, i32* %r325
%r327 = lshr i512 %r323, 32
%r329 = getelementptr i32, i32* %r1, i32 4
%r330 = trunc i512 %r327 to i32
store i32 %r330, i32* %r329
%r331 = lshr i512 %r327, 32
%r333 = getelementptr i32, i32* %r1, i32 5
%r334 = trunc i512 %r331 to i32
store i32 %r334, i32* %r333
%r335 = lshr i512 %r331, 32
%r337 = getelementptr i32, i32* %r1, i32 6
%r338 = trunc i512 %r335 to i32
store i32 %r338, i32* %r337
%r339 = lshr i512 %r335, 32
%r341 = getelementptr i32, i32* %r1, i32 7
%r342 = trunc i512 %r339 to i32
store i32 %r342, i32* %r341
%r343 = lshr i512 %r339, 32
%r345 = getelementptr i32, i32* %r1, i32 8
%r346 = trunc i512 %r343 to i32
store i32 %r346, i32* %r345
%r347 = lshr i512 %r343, 32
%r349 = getelementptr i32, i32* %r1, i32 9
%r350 = trunc i512 %r347 to i32
store i32 %r350, i32* %r349
%r351 = lshr i512 %r347, 32
%r353 = getelementptr i32, i32* %r1, i32 10
%r354 = trunc i512 %r351 to i32
store i32 %r354, i32* %r353
%r355 = lshr i512 %r351, 32
%r357 = getelementptr i32, i32* %r1, i32 11
%r358 = trunc i512 %r355 to i32
store i32 %r358, i32* %r357
%r359 = lshr i512 %r355, 32
%r361 = getelementptr i32, i32* %r1, i32 12
%r362 = trunc i512 %r359 to i32
store i32 %r362, i32* %r361
%r363 = lshr i512 %r359, 32
%r365 = getelementptr i32, i32* %r1, i32 13
%r366 = trunc i512 %r363 to i32
store i32 %r366, i32* %r365
%r367 = lshr i512 %r363, 32
%r369 = getelementptr i32, i32* %r1, i32 14
%r370 = trunc i512 %r367 to i32
store i32 %r370, i32* %r369
%r371 = lshr i512 %r367, 32
%r373 = getelementptr i32, i32* %r1, i32 15
%r374 = trunc i512 %r371 to i32
store i32 %r374, i32* %r373
ret void
}
define void @mcl_fp_montNF16L(i32* %r1, i32* %r2, i32* %r3, i32* %r4)
{
%r6 = getelementptr i32, i32* %r4, i32 -1
%r7 = load i32, i32* %r6
%r8 = load i32, i32* %r3
%r9 = call i544 @mulPv512x32(i32* %r2, i32 %r8)
%r10 = trunc i544 %r9 to i32
%r11 = mul i32 %r10, %r7
%r12 = call i544 @mulPv512x32(i32* %r4, i32 %r11)
%r13 = add i544 %r9, %r12
%r14 = lshr i544 %r13, 32
%r16 = getelementptr i32, i32* %r3, i32 1
%r17 = load i32, i32* %r16
%r18 = call i544 @mulPv512x32(i32* %r2, i32 %r17)
%r19 = add i544 %r14, %r18
%r20 = trunc i544 %r19 to i32
%r21 = mul i32 %r20, %r7
%r22 = call i544 @mulPv512x32(i32* %r4, i32 %r21)
%r23 = add i544 %r19, %r22
%r24 = lshr i544 %r23, 32
%r26 = getelementptr i32, i32* %r3, i32 2
%r27 = load i32, i32* %r26
%r28 = call i544 @mulPv512x32(i32* %r2, i32 %r27)
%r29 = add i544 %r24, %r28
%r30 = trunc i544 %r29 to i32
%r31 = mul i32 %r30, %r7
%r32 = call i544 @mulPv512x32(i32* %r4, i32 %r31)
%r33 = add i544 %r29, %r32
%r34 = lshr i544 %r33, 32
%r36 = getelementptr i32, i32* %r3, i32 3
%r37 = load i32, i32* %r36
%r38 = call i544 @mulPv512x32(i32* %r2, i32 %r37)
%r39 = add i544 %r34, %r38
%r40 = trunc i544 %r39 to i32
%r41 = mul i32 %r40, %r7
%r42 = call i544 @mulPv512x32(i32* %r4, i32 %r41)
%r43 = add i544 %r39, %r42
%r44 = lshr i544 %r43, 32
%r46 = getelementptr i32, i32* %r3, i32 4
%r47 = load i32, i32* %r46
%r48 = call i544 @mulPv512x32(i32* %r2, i32 %r47)
%r49 = add i544 %r44, %r48
%r50 = trunc i544 %r49 to i32
%r51 = mul i32 %r50, %r7
%r52 = call i544 @mulPv512x32(i32* %r4, i32 %r51)
%r53 = add i544 %r49, %r52
%r54 = lshr i544 %r53, 32
%r56 = getelementptr i32, i32* %r3, i32 5
%r57 = load i32, i32* %r56
%r58 = call i544 @mulPv512x32(i32* %r2, i32 %r57)
%r59 = add i544 %r54, %r58
%r60 = trunc i544 %r59 to i32
%r61 = mul i32 %r60, %r7
%r62 = call i544 @mulPv512x32(i32* %r4, i32 %r61)
%r63 = add i544 %r59, %r62
%r64 = lshr i544 %r63, 32
%r66 = getelementptr i32, i32* %r3, i32 6
%r67 = load i32, i32* %r66
%r68 = call i544 @mulPv512x32(i32* %r2, i32 %r67)
%r69 = add i544 %r64, %r68
%r70 = trunc i544 %r69 to i32
%r71 = mul i32 %r70, %r7
%r72 = call i544 @mulPv512x32(i32* %r4, i32 %r71)
%r73 = add i544 %r69, %r72
%r74 = lshr i544 %r73, 32
%r76 = getelementptr i32, i32* %r3, i32 7
%r77 = load i32, i32* %r76
%r78 = call i544 @mulPv512x32(i32* %r2, i32 %r77)
%r79 = add i544 %r74, %r78
%r80 = trunc i544 %r79 to i32
%r81 = mul i32 %r80, %r7
%r82 = call i544 @mulPv512x32(i32* %r4, i32 %r81)
%r83 = add i544 %r79, %r82
%r84 = lshr i544 %r83, 32
%r86 = getelementptr i32, i32* %r3, i32 8
%r87 = load i32, i32* %r86
%r88 = call i544 @mulPv512x32(i32* %r2, i32 %r87)
%r89 = add i544 %r84, %r88
%r90 = trunc i544 %r89 to i32
%r91 = mul i32 %r90, %r7
%r92 = call i544 @mulPv512x32(i32* %r4, i32 %r91)
%r93 = add i544 %r89, %r92
%r94 = lshr i544 %r93, 32
%r96 = getelementptr i32, i32* %r3, i32 9
%r97 = load i32, i32* %r96
%r98 = call i544 @mulPv512x32(i32* %r2, i32 %r97)
%r99 = add i544 %r94, %r98
%r100 = trunc i544 %r99 to i32
%r101 = mul i32 %r100, %r7
%r102 = call i544 @mulPv512x32(i32* %r4, i32 %r101)
%r103 = add i544 %r99, %r102
%r104 = lshr i544 %r103, 32
%r106 = getelementptr i32, i32* %r3, i32 10
%r107 = load i32, i32* %r106
%r108 = call i544 @mulPv512x32(i32* %r2, i32 %r107)
%r109 = add i544 %r104, %r108
%r110 = trunc i544 %r109 to i32
%r111 = mul i32 %r110, %r7
%r112 = call i544 @mulPv512x32(i32* %r4, i32 %r111)
%r113 = add i544 %r109, %r112
%r114 = lshr i544 %r113, 32
%r116 = getelementptr i32, i32* %r3, i32 11
%r117 = load i32, i32* %r116
%r118 = call i544 @mulPv512x32(i32* %r2, i32 %r117)
%r119 = add i544 %r114, %r118
%r120 = trunc i544 %r119 to i32
%r121 = mul i32 %r120, %r7
%r122 = call i544 @mulPv512x32(i32* %r4, i32 %r121)
%r123 = add i544 %r119, %r122
%r124 = lshr i544 %r123, 32
%r126 = getelementptr i32, i32* %r3, i32 12
%r127 = load i32, i32* %r126
%r128 = call i544 @mulPv512x32(i32* %r2, i32 %r127)
%r129 = add i544 %r124, %r128
%r130 = trunc i544 %r129 to i32
%r131 = mul i32 %r130, %r7
%r132 = call i544 @mulPv512x32(i32* %r4, i32 %r131)
%r133 = add i544 %r129, %r132
%r134 = lshr i544 %r133, 32
%r136 = getelementptr i32, i32* %r3, i32 13
%r137 = load i32, i32* %r136
%r138 = call i544 @mulPv512x32(i32* %r2, i32 %r137)
%r139 = add i544 %r134, %r138
%r140 = trunc i544 %r139 to i32
%r141 = mul i32 %r140, %r7
%r142 = call i544 @mulPv512x32(i32* %r4, i32 %r141)
%r143 = add i544 %r139, %r142
%r144 = lshr i544 %r143, 32
%r146 = getelementptr i32, i32* %r3, i32 14
%r147 = load i32, i32* %r146
%r148 = call i544 @mulPv512x32(i32* %r2, i32 %r147)
%r149 = add i544 %r144, %r148
%r150 = trunc i544 %r149 to i32
%r151 = mul i32 %r150, %r7
%r152 = call i544 @mulPv512x32(i32* %r4, i32 %r151)
%r153 = add i544 %r149, %r152
%r154 = lshr i544 %r153, 32
%r156 = getelementptr i32, i32* %r3, i32 15
%r157 = load i32, i32* %r156
%r158 = call i544 @mulPv512x32(i32* %r2, i32 %r157)
%r159 = add i544 %r154, %r158
%r160 = trunc i544 %r159 to i32
%r161 = mul i32 %r160, %r7
%r162 = call i544 @mulPv512x32(i32* %r4, i32 %r161)
%r163 = add i544 %r159, %r162
%r164 = lshr i544 %r163, 32
%r165 = trunc i544 %r164 to i512
%r166 = load i32, i32* %r4
%r167 = zext i32 %r166 to i64
%r169 = getelementptr i32, i32* %r4, i32 1
%r170 = load i32, i32* %r169
%r171 = zext i32 %r170 to i64
%r172 = shl i64 %r171, 32
%r173 = or i64 %r167, %r172
%r174 = zext i64 %r173 to i96
%r176 = getelementptr i32, i32* %r4, i32 2
%r177 = load i32, i32* %r176
%r178 = zext i32 %r177 to i96
%r179 = shl i96 %r178, 64
%r180 = or i96 %r174, %r179
%r181 = zext i96 %r180 to i128
%r183 = getelementptr i32, i32* %r4, i32 3
%r184 = load i32, i32* %r183
%r185 = zext i32 %r184 to i128
%r186 = shl i128 %r185, 96
%r187 = or i128 %r181, %r186
%r188 = zext i128 %r187 to i160
%r190 = getelementptr i32, i32* %r4, i32 4
%r191 = load i32, i32* %r190
%r192 = zext i32 %r191 to i160
%r193 = shl i160 %r192, 128
%r194 = or i160 %r188, %r193
%r195 = zext i160 %r194 to i192
%r197 = getelementptr i32, i32* %r4, i32 5
%r198 = load i32, i32* %r197
%r199 = zext i32 %r198 to i192
%r200 = shl i192 %r199, 160
%r201 = or i192 %r195, %r200
%r202 = zext i192 %r201 to i224
%r204 = getelementptr i32, i32* %r4, i32 6
%r205 = load i32, i32* %r204
%r206 = zext i32 %r205 to i224
%r207 = shl i224 %r206, 192
%r208 = or i224 %r202, %r207
%r209 = zext i224 %r208 to i256
%r211 = getelementptr i32, i32* %r4, i32 7
%r212 = load i32, i32* %r211
%r213 = zext i32 %r212 to i256
%r214 = shl i256 %r213, 224
%r215 = or i256 %r209, %r214
%r216 = zext i256 %r215 to i288
%r218 = getelementptr i32, i32* %r4, i32 8
%r219 = load i32, i32* %r218
%r220 = zext i32 %r219 to i288
%r221 = shl i288 %r220, 256
%r222 = or i288 %r216, %r221
%r223 = zext i288 %r222 to i320
%r225 = getelementptr i32, i32* %r4, i32 9
%r226 = load i32, i32* %r225
%r227 = zext i32 %r226 to i320
%r228 = shl i320 %r227, 288
%r229 = or i320 %r223, %r228
%r230 = zext i320 %r229 to i352
%r232 = getelementptr i32, i32* %r4, i32 10
%r233 = load i32, i32* %r232
%r234 = zext i32 %r233 to i352
%r235 = shl i352 %r234, 320
%r236 = or i352 %r230, %r235
%r237 = zext i352 %r236 to i384
%r239 = getelementptr i32, i32* %r4, i32 11
%r240 = load i32, i32* %r239
%r241 = zext i32 %r240 to i384
%r242 = shl i384 %r241, 352
%r243 = or i384 %r237, %r242
%r244 = zext i384 %r243 to i416
%r246 = getelementptr i32, i32* %r4, i32 12
%r247 = load i32, i32* %r246
%r248 = zext i32 %r247 to i416
%r249 = shl i416 %r248, 384
%r250 = or i416 %r244, %r249
%r251 = zext i416 %r250 to i448
%r253 = getelementptr i32, i32* %r4, i32 13
%r254 = load i32, i32* %r253
%r255 = zext i32 %r254 to i448
%r256 = shl i448 %r255, 416
%r257 = or i448 %r251, %r256
%r258 = zext i448 %r257 to i480
%r260 = getelementptr i32, i32* %r4, i32 14
%r261 = load i32, i32* %r260
%r262 = zext i32 %r261 to i480
%r263 = shl i480 %r262, 448
%r264 = or i480 %r258, %r263
%r265 = zext i480 %r264 to i512
%r267 = getelementptr i32, i32* %r4, i32 15
%r268 = load i32, i32* %r267
%r269 = zext i32 %r268 to i512
%r270 = shl i512 %r269, 480
%r271 = or i512 %r265, %r270
%r272 = sub i512 %r165, %r271
%r273 = lshr i512 %r272, 511
%r274 = trunc i512 %r273 to i1
%r275 = select i1 %r274, i512 %r165, i512 %r272
%r277 = getelementptr i32, i32* %r1, i32 0
%r278 = trunc i512 %r275 to i32
store i32 %r278, i32* %r277
%r279 = lshr i512 %r275, 32
%r281 = getelementptr i32, i32* %r1, i32 1
%r282 = trunc i512 %r279 to i32
store i32 %r282, i32* %r281
%r283 = lshr i512 %r279, 32
%r285 = getelementptr i32, i32* %r1, i32 2
%r286 = trunc i512 %r283 to i32
store i32 %r286, i32* %r285
%r287 = lshr i512 %r283, 32
%r289 = getelementptr i32, i32* %r1, i32 3
%r290 = trunc i512 %r287 to i32
store i32 %r290, i32* %r289
%r291 = lshr i512 %r287, 32
%r293 = getelementptr i32, i32* %r1, i32 4
%r294 = trunc i512 %r291 to i32
store i32 %r294, i32* %r293
%r295 = lshr i512 %r291, 32
%r297 = getelementptr i32, i32* %r1, i32 5
%r298 = trunc i512 %r295 to i32
store i32 %r298, i32* %r297
%r299 = lshr i512 %r295, 32
%r301 = getelementptr i32, i32* %r1, i32 6
%r302 = trunc i512 %r299 to i32
store i32 %r302, i32* %r301
%r303 = lshr i512 %r299, 32
%r305 = getelementptr i32, i32* %r1, i32 7
%r306 = trunc i512 %r303 to i32
store i32 %r306, i32* %r305
%r307 = lshr i512 %r303, 32
%r309 = getelementptr i32, i32* %r1, i32 8
%r310 = trunc i512 %r307 to i32
store i32 %r310, i32* %r309
%r311 = lshr i512 %r307, 32
%r313 = getelementptr i32, i32* %r1, i32 9
%r314 = trunc i512 %r311 to i32
store i32 %r314, i32* %r313
%r315 = lshr i512 %r311, 32
%r317 = getelementptr i32, i32* %r1, i32 10
%r318 = trunc i512 %r315 to i32
store i32 %r318, i32* %r317
%r319 = lshr i512 %r315, 32
%r321 = getelementptr i32, i32* %r1, i32 11
%r322 = trunc i512 %r319 to i32
store i32 %r322, i32* %r321
%r323 = lshr i512 %r319, 32
%r325 = getelementptr i32, i32* %r1, i32 12
%r326 = trunc i512 %r323 to i32
store i32 %r326, i32* %r325
%r327 = lshr i512 %r323, 32
%r329 = getelementptr i32, i32* %r1, i32 13
%r330 = trunc i512 %r327 to i32
store i32 %r330, i32* %r329
%r331 = lshr i512 %r327, 32
%r333 = getelementptr i32, i32* %r1, i32 14
%r334 = trunc i512 %r331 to i32
store i32 %r334, i32* %r333
%r335 = lshr i512 %r331, 32
%r337 = getelementptr i32, i32* %r1, i32 15
%r338 = trunc i512 %r335 to i32
store i32 %r338, i32* %r337
ret void
}
define void @mcl_fp_montRed16L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3)
{
%r5 = getelementptr i32, i32* %r3, i32 -1
%r6 = load i32, i32* %r5
%r7 = load i32, i32* %r3
%r8 = zext i32 %r7 to i64
%r10 = getelementptr i32, i32* %r3, i32 1
%r11 = load i32, i32* %r10
%r12 = zext i32 %r11 to i64
%r13 = shl i64 %r12, 32
%r14 = or i64 %r8, %r13
%r15 = zext i64 %r14 to i96
%r17 = getelementptr i32, i32* %r3, i32 2
%r18 = load i32, i32* %r17
%r19 = zext i32 %r18 to i96
%r20 = shl i96 %r19, 64
%r21 = or i96 %r15, %r20
%r22 = zext i96 %r21 to i128
%r24 = getelementptr i32, i32* %r3, i32 3
%r25 = load i32, i32* %r24
%r26 = zext i32 %r25 to i128
%r27 = shl i128 %r26, 96
%r28 = or i128 %r22, %r27
%r29 = zext i128 %r28 to i160
%r31 = getelementptr i32, i32* %r3, i32 4
%r32 = load i32, i32* %r31
%r33 = zext i32 %r32 to i160
%r34 = shl i160 %r33, 128
%r35 = or i160 %r29, %r34
%r36 = zext i160 %r35 to i192
%r38 = getelementptr i32, i32* %r3, i32 5
%r39 = load i32, i32* %r38
%r40 = zext i32 %r39 to i192
%r41 = shl i192 %r40, 160
%r42 = or i192 %r36, %r41
%r43 = zext i192 %r42 to i224
%r45 = getelementptr i32, i32* %r3, i32 6
%r46 = load i32, i32* %r45
%r47 = zext i32 %r46 to i224
%r48 = shl i224 %r47, 192
%r49 = or i224 %r43, %r48
%r50 = zext i224 %r49 to i256
%r52 = getelementptr i32, i32* %r3, i32 7
%r53 = load i32, i32* %r52
%r54 = zext i32 %r53 to i256
%r55 = shl i256 %r54, 224
%r56 = or i256 %r50, %r55
%r57 = zext i256 %r56 to i288
%r59 = getelementptr i32, i32* %r3, i32 8
%r60 = load i32, i32* %r59
%r61 = zext i32 %r60 to i288
%r62 = shl i288 %r61, 256
%r63 = or i288 %r57, %r62
%r64 = zext i288 %r63 to i320
%r66 = getelementptr i32, i32* %r3, i32 9
%r67 = load i32, i32* %r66
%r68 = zext i32 %r67 to i320
%r69 = shl i320 %r68, 288
%r70 = or i320 %r64, %r69
%r71 = zext i320 %r70 to i352
%r73 = getelementptr i32, i32* %r3, i32 10
%r74 = load i32, i32* %r73
%r75 = zext i32 %r74 to i352
%r76 = shl i352 %r75, 320
%r77 = or i352 %r71, %r76
%r78 = zext i352 %r77 to i384
%r80 = getelementptr i32, i32* %r3, i32 11
%r81 = load i32, i32* %r80
%r82 = zext i32 %r81 to i384
%r83 = shl i384 %r82, 352
%r84 = or i384 %r78, %r83
%r85 = zext i384 %r84 to i416
%r87 = getelementptr i32, i32* %r3, i32 12
%r88 = load i32, i32* %r87
%r89 = zext i32 %r88 to i416
%r90 = shl i416 %r89, 384
%r91 = or i416 %r85, %r90
%r92 = zext i416 %r91 to i448
%r94 = getelementptr i32, i32* %r3, i32 13
%r95 = load i32, i32* %r94
%r96 = zext i32 %r95 to i448
%r97 = shl i448 %r96, 416
%r98 = or i448 %r92, %r97
%r99 = zext i448 %r98 to i480
%r101 = getelementptr i32, i32* %r3, i32 14
%r102 = load i32, i32* %r101
%r103 = zext i32 %r102 to i480
%r104 = shl i480 %r103, 448
%r105 = or i480 %r99, %r104
%r106 = zext i480 %r105 to i512
%r108 = getelementptr i32, i32* %r3, i32 15
%r109 = load i32, i32* %r108
%r110 = zext i32 %r109 to i512
%r111 = shl i512 %r110, 480
%r112 = or i512 %r106, %r111
%r113 = load i32, i32* %r2
%r114 = zext i32 %r113 to i64
%r116 = getelementptr i32, i32* %r2, i32 1
%r117 = load i32, i32* %r116
%r118 = zext i32 %r117 to i64
%r119 = shl i64 %r118, 32
%r120 = or i64 %r114, %r119
%r121 = zext i64 %r120 to i96
%r123 = getelementptr i32, i32* %r2, i32 2
%r124 = load i32, i32* %r123
%r125 = zext i32 %r124 to i96
%r126 = shl i96 %r125, 64
%r127 = or i96 %r121, %r126
%r128 = zext i96 %r127 to i128
%r130 = getelementptr i32, i32* %r2, i32 3
%r131 = load i32, i32* %r130
%r132 = zext i32 %r131 to i128
%r133 = shl i128 %r132, 96
%r134 = or i128 %r128, %r133
%r135 = zext i128 %r134 to i160
%r137 = getelementptr i32, i32* %r2, i32 4
%r138 = load i32, i32* %r137
%r139 = zext i32 %r138 to i160
%r140 = shl i160 %r139, 128
%r141 = or i160 %r135, %r140
%r142 = zext i160 %r141 to i192
%r144 = getelementptr i32, i32* %r2, i32 5
%r145 = load i32, i32* %r144
%r146 = zext i32 %r145 to i192
%r147 = shl i192 %r146, 160
%r148 = or i192 %r142, %r147
%r149 = zext i192 %r148 to i224
%r151 = getelementptr i32, i32* %r2, i32 6
%r152 = load i32, i32* %r151
%r153 = zext i32 %r152 to i224
%r154 = shl i224 %r153, 192
%r155 = or i224 %r149, %r154
%r156 = zext i224 %r155 to i256
%r158 = getelementptr i32, i32* %r2, i32 7
%r159 = load i32, i32* %r158
%r160 = zext i32 %r159 to i256
%r161 = shl i256 %r160, 224
%r162 = or i256 %r156, %r161
%r163 = zext i256 %r162 to i288
%r165 = getelementptr i32, i32* %r2, i32 8
%r166 = load i32, i32* %r165
%r167 = zext i32 %r166 to i288
%r168 = shl i288 %r167, 256
%r169 = or i288 %r163, %r168
%r170 = zext i288 %r169 to i320
%r172 = getelementptr i32, i32* %r2, i32 9
%r173 = load i32, i32* %r172
%r174 = zext i32 %r173 to i320
%r175 = shl i320 %r174, 288
%r176 = or i320 %r170, %r175
%r177 = zext i320 %r176 to i352
%r179 = getelementptr i32, i32* %r2, i32 10
%r180 = load i32, i32* %r179
%r181 = zext i32 %r180 to i352
%r182 = shl i352 %r181, 320
%r183 = or i352 %r177, %r182
%r184 = zext i352 %r183 to i384
%r186 = getelementptr i32, i32* %r2, i32 11
%r187 = load i32, i32* %r186
%r188 = zext i32 %r187 to i384
%r189 = shl i384 %r188, 352
%r190 = or i384 %r184, %r189
%r191 = zext i384 %r190 to i416
%r193 = getelementptr i32, i32* %r2, i32 12
%r194 = load i32, i32* %r193
%r195 = zext i32 %r194 to i416
%r196 = shl i416 %r195, 384
%r197 = or i416 %r191, %r196
%r198 = zext i416 %r197 to i448
%r200 = getelementptr i32, i32* %r2, i32 13
%r201 = load i32, i32* %r200
%r202 = zext i32 %r201 to i448
%r203 = shl i448 %r202, 416
%r204 = or i448 %r198, %r203
%r205 = zext i448 %r204 to i480
%r207 = getelementptr i32, i32* %r2, i32 14
%r208 = load i32, i32* %r207
%r209 = zext i32 %r208 to i480
%r210 = shl i480 %r209, 448
%r211 = or i480 %r205, %r210
%r212 = zext i480 %r211 to i512
%r214 = getelementptr i32, i32* %r2, i32 15
%r215 = load i32, i32* %r214
%r216 = zext i32 %r215 to i512
%r217 = shl i512 %r216, 480
%r218 = or i512 %r212, %r217
%r219 = trunc i512 %r218 to i32
%r220 = mul i32 %r219, %r6
%r221 = call i544 @mulPv512x32(i32* %r3, i32 %r220)
%r223 = getelementptr i32, i32* %r2, i32 16
%r224 = load i32, i32* %r223
%r225 = zext i32 %r224 to i544
%r226 = shl i544 %r225, 512
%r227 = zext i512 %r218 to i544
%r228 = or i544 %r226, %r227
%r229 = zext i544 %r228 to i576
%r230 = zext i544 %r221 to i576
%r231 = add i576 %r229, %r230
%r232 = lshr i576 %r231, 32
%r233 = trunc i576 %r232 to i544
%r234 = lshr i544 %r233, 512
%r235 = trunc i544 %r234 to i32
%r236 = trunc i544 %r233 to i512
%r237 = trunc i512 %r236 to i32
%r238 = mul i32 %r237, %r6
%r239 = call i544 @mulPv512x32(i32* %r3, i32 %r238)
%r240 = zext i32 %r235 to i544
%r241 = shl i544 %r240, 512
%r242 = add i544 %r239, %r241
%r244 = getelementptr i32, i32* %r2, i32 17
%r245 = load i32, i32* %r244
%r246 = zext i32 %r245 to i544
%r247 = shl i544 %r246, 512
%r248 = zext i512 %r236 to i544
%r249 = or i544 %r247, %r248
%r250 = zext i544 %r249 to i576
%r251 = zext i544 %r242 to i576
%r252 = add i576 %r250, %r251
%r253 = lshr i576 %r252, 32
%r254 = trunc i576 %r253 to i544
%r255 = lshr i544 %r254, 512
%r256 = trunc i544 %r255 to i32
%r257 = trunc i544 %r254 to i512
%r258 = trunc i512 %r257 to i32
%r259 = mul i32 %r258, %r6
%r260 = call i544 @mulPv512x32(i32* %r3, i32 %r259)
%r261 = zext i32 %r256 to i544
%r262 = shl i544 %r261, 512
%r263 = add i544 %r260, %r262
%r265 = getelementptr i32, i32* %r2, i32 18
%r266 = load i32, i32* %r265
%r267 = zext i32 %r266 to i544
%r268 = shl i544 %r267, 512
%r269 = zext i512 %r257 to i544
%r270 = or i544 %r268, %r269
%r271 = zext i544 %r270 to i576
%r272 = zext i544 %r263 to i576
%r273 = add i576 %r271, %r272
%r274 = lshr i576 %r273, 32
%r275 = trunc i576 %r274 to i544
%r276 = lshr i544 %r275, 512
%r277 = trunc i544 %r276 to i32
%r278 = trunc i544 %r275 to i512
%r279 = trunc i512 %r278 to i32
%r280 = mul i32 %r279, %r6
%r281 = call i544 @mulPv512x32(i32* %r3, i32 %r280)
%r282 = zext i32 %r277 to i544
%r283 = shl i544 %r282, 512
%r284 = add i544 %r281, %r283
%r286 = getelementptr i32, i32* %r2, i32 19
%r287 = load i32, i32* %r286
%r288 = zext i32 %r287 to i544
%r289 = shl i544 %r288, 512
%r290 = zext i512 %r278 to i544
%r291 = or i544 %r289, %r290
%r292 = zext i544 %r291 to i576
%r293 = zext i544 %r284 to i576
%r294 = add i576 %r292, %r293
%r295 = lshr i576 %r294, 32
%r296 = trunc i576 %r295 to i544
%r297 = lshr i544 %r296, 512
%r298 = trunc i544 %r297 to i32
%r299 = trunc i544 %r296 to i512
%r300 = trunc i512 %r299 to i32
%r301 = mul i32 %r300, %r6
%r302 = call i544 @mulPv512x32(i32* %r3, i32 %r301)
%r303 = zext i32 %r298 to i544
%r304 = shl i544 %r303, 512
%r305 = add i544 %r302, %r304
%r307 = getelementptr i32, i32* %r2, i32 20
%r308 = load i32, i32* %r307
%r309 = zext i32 %r308 to i544
%r310 = shl i544 %r309, 512
%r311 = zext i512 %r299 to i544
%r312 = or i544 %r310, %r311
%r313 = zext i544 %r312 to i576
%r314 = zext i544 %r305 to i576
%r315 = add i576 %r313, %r314
%r316 = lshr i576 %r315, 32
%r317 = trunc i576 %r316 to i544
%r318 = lshr i544 %r317, 512
%r319 = trunc i544 %r318 to i32
%r320 = trunc i544 %r317 to i512
%r321 = trunc i512 %r320 to i32
%r322 = mul i32 %r321, %r6
%r323 = call i544 @mulPv512x32(i32* %r3, i32 %r322)
%r324 = zext i32 %r319 to i544
%r325 = shl i544 %r324, 512
%r326 = add i544 %r323, %r325
%r328 = getelementptr i32, i32* %r2, i32 21
%r329 = load i32, i32* %r328
%r330 = zext i32 %r329 to i544
%r331 = shl i544 %r330, 512
%r332 = zext i512 %r320 to i544
%r333 = or i544 %r331, %r332
%r334 = zext i544 %r333 to i576
%r335 = zext i544 %r326 to i576
%r336 = add i576 %r334, %r335
%r337 = lshr i576 %r336, 32
%r338 = trunc i576 %r337 to i544
%r339 = lshr i544 %r338, 512
%r340 = trunc i544 %r339 to i32
%r341 = trunc i544 %r338 to i512
%r342 = trunc i512 %r341 to i32
%r343 = mul i32 %r342, %r6
%r344 = call i544 @mulPv512x32(i32* %r3, i32 %r343)
%r345 = zext i32 %r340 to i544
%r346 = shl i544 %r345, 512
%r347 = add i544 %r344, %r346
%r349 = getelementptr i32, i32* %r2, i32 22
%r350 = load i32, i32* %r349
%r351 = zext i32 %r350 to i544
%r352 = shl i544 %r351, 512
%r353 = zext i512 %r341 to i544
%r354 = or i544 %r352, %r353
%r355 = zext i544 %r354 to i576
%r356 = zext i544 %r347 to i576
%r357 = add i576 %r355, %r356
%r358 = lshr i576 %r357, 32
%r359 = trunc i576 %r358 to i544
%r360 = lshr i544 %r359, 512
%r361 = trunc i544 %r360 to i32
%r362 = trunc i544 %r359 to i512
%r363 = trunc i512 %r362 to i32
%r364 = mul i32 %r363, %r6
%r365 = call i544 @mulPv512x32(i32* %r3, i32 %r364)
%r366 = zext i32 %r361 to i544
%r367 = shl i544 %r366, 512
%r368 = add i544 %r365, %r367
%r370 = getelementptr i32, i32* %r2, i32 23
%r371 = load i32, i32* %r370
%r372 = zext i32 %r371 to i544
%r373 = shl i544 %r372, 512
%r374 = zext i512 %r362 to i544
%r375 = or i544 %r373, %r374
%r376 = zext i544 %r375 to i576
%r377 = zext i544 %r368 to i576
%r378 = add i576 %r376, %r377
%r379 = lshr i576 %r378, 32
%r380 = trunc i576 %r379 to i544
%r381 = lshr i544 %r380, 512
%r382 = trunc i544 %r381 to i32
%r383 = trunc i544 %r380 to i512
%r384 = trunc i512 %r383 to i32
%r385 = mul i32 %r384, %r6
%r386 = call i544 @mulPv512x32(i32* %r3, i32 %r385)
%r387 = zext i32 %r382 to i544
%r388 = shl i544 %r387, 512
%r389 = add i544 %r386, %r388
%r391 = getelementptr i32, i32* %r2, i32 24
%r392 = load i32, i32* %r391
%r393 = zext i32 %r392 to i544
%r394 = shl i544 %r393, 512
%r395 = zext i512 %r383 to i544
%r396 = or i544 %r394, %r395
%r397 = zext i544 %r396 to i576
%r398 = zext i544 %r389 to i576
%r399 = add i576 %r397, %r398
%r400 = lshr i576 %r399, 32
%r401 = trunc i576 %r400 to i544
%r402 = lshr i544 %r401, 512
%r403 = trunc i544 %r402 to i32
%r404 = trunc i544 %r401 to i512
%r405 = trunc i512 %r404 to i32
%r406 = mul i32 %r405, %r6
%r407 = call i544 @mulPv512x32(i32* %r3, i32 %r406)
%r408 = zext i32 %r403 to i544
%r409 = shl i544 %r408, 512
%r410 = add i544 %r407, %r409
%r412 = getelementptr i32, i32* %r2, i32 25
%r413 = load i32, i32* %r412
%r414 = zext i32 %r413 to i544
%r415 = shl i544 %r414, 512
%r416 = zext i512 %r404 to i544
%r417 = or i544 %r415, %r416
%r418 = zext i544 %r417 to i576
%r419 = zext i544 %r410 to i576
%r420 = add i576 %r418, %r419
%r421 = lshr i576 %r420, 32
%r422 = trunc i576 %r421 to i544
%r423 = lshr i544 %r422, 512
%r424 = trunc i544 %r423 to i32
%r425 = trunc i544 %r422 to i512
%r426 = trunc i512 %r425 to i32
%r427 = mul i32 %r426, %r6
%r428 = call i544 @mulPv512x32(i32* %r3, i32 %r427)
%r429 = zext i32 %r424 to i544
%r430 = shl i544 %r429, 512
%r431 = add i544 %r428, %r430
%r433 = getelementptr i32, i32* %r2, i32 26
%r434 = load i32, i32* %r433
%r435 = zext i32 %r434 to i544
%r436 = shl i544 %r435, 512
%r437 = zext i512 %r425 to i544
%r438 = or i544 %r436, %r437
%r439 = zext i544 %r438 to i576
%r440 = zext i544 %r431 to i576
%r441 = add i576 %r439, %r440
%r442 = lshr i576 %r441, 32
%r443 = trunc i576 %r442 to i544
%r444 = lshr i544 %r443, 512
%r445 = trunc i544 %r444 to i32
%r446 = trunc i544 %r443 to i512
%r447 = trunc i512 %r446 to i32
%r448 = mul i32 %r447, %r6
%r449 = call i544 @mulPv512x32(i32* %r3, i32 %r448)
%r450 = zext i32 %r445 to i544
%r451 = shl i544 %r450, 512
%r452 = add i544 %r449, %r451
%r454 = getelementptr i32, i32* %r2, i32 27
%r455 = load i32, i32* %r454
%r456 = zext i32 %r455 to i544
%r457 = shl i544 %r456, 512
%r458 = zext i512 %r446 to i544
%r459 = or i544 %r457, %r458
%r460 = zext i544 %r459 to i576
%r461 = zext i544 %r452 to i576
%r462 = add i576 %r460, %r461
%r463 = lshr i576 %r462, 32
%r464 = trunc i576 %r463 to i544
%r465 = lshr i544 %r464, 512
%r466 = trunc i544 %r465 to i32
%r467 = trunc i544 %r464 to i512
%r468 = trunc i512 %r467 to i32
%r469 = mul i32 %r468, %r6
%r470 = call i544 @mulPv512x32(i32* %r3, i32 %r469)
%r471 = zext i32 %r466 to i544
%r472 = shl i544 %r471, 512
%r473 = add i544 %r470, %r472
%r475 = getelementptr i32, i32* %r2, i32 28
%r476 = load i32, i32* %r475
%r477 = zext i32 %r476 to i544
%r478 = shl i544 %r477, 512
%r479 = zext i512 %r467 to i544
%r480 = or i544 %r478, %r479
%r481 = zext i544 %r480 to i576
%r482 = zext i544 %r473 to i576
%r483 = add i576 %r481, %r482
%r484 = lshr i576 %r483, 32
%r485 = trunc i576 %r484 to i544
%r486 = lshr i544 %r485, 512
%r487 = trunc i544 %r486 to i32
%r488 = trunc i544 %r485 to i512
%r489 = trunc i512 %r488 to i32
%r490 = mul i32 %r489, %r6
%r491 = call i544 @mulPv512x32(i32* %r3, i32 %r490)
%r492 = zext i32 %r487 to i544
%r493 = shl i544 %r492, 512
%r494 = add i544 %r491, %r493
%r496 = getelementptr i32, i32* %r2, i32 29
%r497 = load i32, i32* %r496
%r498 = zext i32 %r497 to i544
%r499 = shl i544 %r498, 512
%r500 = zext i512 %r488 to i544
%r501 = or i544 %r499, %r500
%r502 = zext i544 %r501 to i576
%r503 = zext i544 %r494 to i576
%r504 = add i576 %r502, %r503
%r505 = lshr i576 %r504, 32
%r506 = trunc i576 %r505 to i544
%r507 = lshr i544 %r506, 512
%r508 = trunc i544 %r507 to i32
%r509 = trunc i544 %r506 to i512
%r510 = trunc i512 %r509 to i32
%r511 = mul i32 %r510, %r6
%r512 = call i544 @mulPv512x32(i32* %r3, i32 %r511)
%r513 = zext i32 %r508 to i544
%r514 = shl i544 %r513, 512
%r515 = add i544 %r512, %r514
%r517 = getelementptr i32, i32* %r2, i32 30
%r518 = load i32, i32* %r517
%r519 = zext i32 %r518 to i544
%r520 = shl i544 %r519, 512
%r521 = zext i512 %r509 to i544
%r522 = or i544 %r520, %r521
%r523 = zext i544 %r522 to i576
%r524 = zext i544 %r515 to i576
%r525 = add i576 %r523, %r524
%r526 = lshr i576 %r525, 32
%r527 = trunc i576 %r526 to i544
%r528 = lshr i544 %r527, 512
%r529 = trunc i544 %r528 to i32
%r530 = trunc i544 %r527 to i512
%r531 = trunc i512 %r530 to i32
%r532 = mul i32 %r531, %r6
%r533 = call i544 @mulPv512x32(i32* %r3, i32 %r532)
%r534 = zext i32 %r529 to i544
%r535 = shl i544 %r534, 512
%r536 = add i544 %r533, %r535
%r538 = getelementptr i32, i32* %r2, i32 31
%r539 = load i32, i32* %r538
%r540 = zext i32 %r539 to i544
%r541 = shl i544 %r540, 512
%r542 = zext i512 %r530 to i544
%r543 = or i544 %r541, %r542
%r544 = zext i544 %r543 to i576
%r545 = zext i544 %r536 to i576
%r546 = add i576 %r544, %r545
%r547 = lshr i576 %r546, 32
%r548 = trunc i576 %r547 to i544
%r549 = lshr i544 %r548, 512
%r550 = trunc i544 %r549 to i32
%r551 = trunc i544 %r548 to i512
%r552 = zext i512 %r112 to i544
%r553 = zext i32 %r550 to i544
%r554 = shl i544 %r553, 512
%r555 = zext i512 %r551 to i544
%r556 = or i544 %r554, %r555
%r557 = sub i544 %r556, %r552
%r558 = lshr i544 %r557, 512
%r559 = trunc i544 %r558 to i1
%r560 = select i1 %r559, i544 %r556, i544 %r557
%r561 = trunc i544 %r560 to i512
%r563 = getelementptr i32, i32* %r1, i32 0
%r564 = trunc i512 %r561 to i32
store i32 %r564, i32* %r563
%r565 = lshr i512 %r561, 32
%r567 = getelementptr i32, i32* %r1, i32 1
%r568 = trunc i512 %r565 to i32
store i32 %r568, i32* %r567
%r569 = lshr i512 %r565, 32
%r571 = getelementptr i32, i32* %r1, i32 2
%r572 = trunc i512 %r569 to i32
store i32 %r572, i32* %r571
%r573 = lshr i512 %r569, 32
%r575 = getelementptr i32, i32* %r1, i32 3
%r576 = trunc i512 %r573 to i32
store i32 %r576, i32* %r575
%r577 = lshr i512 %r573, 32
%r579 = getelementptr i32, i32* %r1, i32 4
%r580 = trunc i512 %r577 to i32
store i32 %r580, i32* %r579
%r581 = lshr i512 %r577, 32
%r583 = getelementptr i32, i32* %r1, i32 5
%r584 = trunc i512 %r581 to i32
store i32 %r584, i32* %r583
%r585 = lshr i512 %r581, 32
%r587 = getelementptr i32, i32* %r1, i32 6
%r588 = trunc i512 %r585 to i32
store i32 %r588, i32* %r587
%r589 = lshr i512 %r585, 32
%r591 = getelementptr i32, i32* %r1, i32 7
%r592 = trunc i512 %r589 to i32
store i32 %r592, i32* %r591
%r593 = lshr i512 %r589, 32
%r595 = getelementptr i32, i32* %r1, i32 8
%r596 = trunc i512 %r593 to i32
store i32 %r596, i32* %r595
%r597 = lshr i512 %r593, 32
%r599 = getelementptr i32, i32* %r1, i32 9
%r600 = trunc i512 %r597 to i32
store i32 %r600, i32* %r599
%r601 = lshr i512 %r597, 32
%r603 = getelementptr i32, i32* %r1, i32 10
%r604 = trunc i512 %r601 to i32
store i32 %r604, i32* %r603
%r605 = lshr i512 %r601, 32
%r607 = getelementptr i32, i32* %r1, i32 11
%r608 = trunc i512 %r605 to i32
store i32 %r608, i32* %r607
%r609 = lshr i512 %r605, 32
%r611 = getelementptr i32, i32* %r1, i32 12
%r612 = trunc i512 %r609 to i32
store i32 %r612, i32* %r611
%r613 = lshr i512 %r609, 32
%r615 = getelementptr i32, i32* %r1, i32 13
%r616 = trunc i512 %r613 to i32
store i32 %r616, i32* %r615
%r617 = lshr i512 %r613, 32
%r619 = getelementptr i32, i32* %r1, i32 14
%r620 = trunc i512 %r617 to i32
store i32 %r620, i32* %r619
%r621 = lshr i512 %r617, 32
%r623 = getelementptr i32, i32* %r1, i32 15
%r624 = trunc i512 %r621 to i32
store i32 %r624, i32* %r623
ret void
}
define void @mcl_fp_montRedNF16L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3)
{
%r5 = getelementptr i32, i32* %r3, i32 -1
%r6 = load i32, i32* %r5
%r7 = load i32, i32* %r3
%r8 = zext i32 %r7 to i64
%r10 = getelementptr i32, i32* %r3, i32 1
%r11 = load i32, i32* %r10
%r12 = zext i32 %r11 to i64
%r13 = shl i64 %r12, 32
%r14 = or i64 %r8, %r13
%r15 = zext i64 %r14 to i96
%r17 = getelementptr i32, i32* %r3, i32 2
%r18 = load i32, i32* %r17
%r19 = zext i32 %r18 to i96
%r20 = shl i96 %r19, 64
%r21 = or i96 %r15, %r20
%r22 = zext i96 %r21 to i128
%r24 = getelementptr i32, i32* %r3, i32 3
%r25 = load i32, i32* %r24
%r26 = zext i32 %r25 to i128
%r27 = shl i128 %r26, 96
%r28 = or i128 %r22, %r27
%r29 = zext i128 %r28 to i160
%r31 = getelementptr i32, i32* %r3, i32 4
%r32 = load i32, i32* %r31
%r33 = zext i32 %r32 to i160
%r34 = shl i160 %r33, 128
%r35 = or i160 %r29, %r34
%r36 = zext i160 %r35 to i192
%r38 = getelementptr i32, i32* %r3, i32 5
%r39 = load i32, i32* %r38
%r40 = zext i32 %r39 to i192
%r41 = shl i192 %r40, 160
%r42 = or i192 %r36, %r41
%r43 = zext i192 %r42 to i224
%r45 = getelementptr i32, i32* %r3, i32 6
%r46 = load i32, i32* %r45
%r47 = zext i32 %r46 to i224
%r48 = shl i224 %r47, 192
%r49 = or i224 %r43, %r48
%r50 = zext i224 %r49 to i256
%r52 = getelementptr i32, i32* %r3, i32 7
%r53 = load i32, i32* %r52
%r54 = zext i32 %r53 to i256
%r55 = shl i256 %r54, 224
%r56 = or i256 %r50, %r55
%r57 = zext i256 %r56 to i288
%r59 = getelementptr i32, i32* %r3, i32 8
%r60 = load i32, i32* %r59
%r61 = zext i32 %r60 to i288
%r62 = shl i288 %r61, 256
%r63 = or i288 %r57, %r62
%r64 = zext i288 %r63 to i320
%r66 = getelementptr i32, i32* %r3, i32 9
%r67 = load i32, i32* %r66
%r68 = zext i32 %r67 to i320
%r69 = shl i320 %r68, 288
%r70 = or i320 %r64, %r69
%r71 = zext i320 %r70 to i352
%r73 = getelementptr i32, i32* %r3, i32 10
%r74 = load i32, i32* %r73
%r75 = zext i32 %r74 to i352
%r76 = shl i352 %r75, 320
%r77 = or i352 %r71, %r76
%r78 = zext i352 %r77 to i384
%r80 = getelementptr i32, i32* %r3, i32 11
%r81 = load i32, i32* %r80
%r82 = zext i32 %r81 to i384
%r83 = shl i384 %r82, 352
%r84 = or i384 %r78, %r83
%r85 = zext i384 %r84 to i416
%r87 = getelementptr i32, i32* %r3, i32 12
%r88 = load i32, i32* %r87
%r89 = zext i32 %r88 to i416
%r90 = shl i416 %r89, 384
%r91 = or i416 %r85, %r90
%r92 = zext i416 %r91 to i448
%r94 = getelementptr i32, i32* %r3, i32 13
%r95 = load i32, i32* %r94
%r96 = zext i32 %r95 to i448
%r97 = shl i448 %r96, 416
%r98 = or i448 %r92, %r97
%r99 = zext i448 %r98 to i480
%r101 = getelementptr i32, i32* %r3, i32 14
%r102 = load i32, i32* %r101
%r103 = zext i32 %r102 to i480
%r104 = shl i480 %r103, 448
%r105 = or i480 %r99, %r104
%r106 = zext i480 %r105 to i512
%r108 = getelementptr i32, i32* %r3, i32 15
%r109 = load i32, i32* %r108
%r110 = zext i32 %r109 to i512
%r111 = shl i512 %r110, 480
%r112 = or i512 %r106, %r111
%r113 = load i32, i32* %r2
%r114 = zext i32 %r113 to i64
%r116 = getelementptr i32, i32* %r2, i32 1
%r117 = load i32, i32* %r116
%r118 = zext i32 %r117 to i64
%r119 = shl i64 %r118, 32
%r120 = or i64 %r114, %r119
%r121 = zext i64 %r120 to i96
%r123 = getelementptr i32, i32* %r2, i32 2
%r124 = load i32, i32* %r123
%r125 = zext i32 %r124 to i96
%r126 = shl i96 %r125, 64
%r127 = or i96 %r121, %r126
%r128 = zext i96 %r127 to i128
%r130 = getelementptr i32, i32* %r2, i32 3
%r131 = load i32, i32* %r130
%r132 = zext i32 %r131 to i128
%r133 = shl i128 %r132, 96
%r134 = or i128 %r128, %r133
%r135 = zext i128 %r134 to i160
%r137 = getelementptr i32, i32* %r2, i32 4
%r138 = load i32, i32* %r137
%r139 = zext i32 %r138 to i160
%r140 = shl i160 %r139, 128
%r141 = or i160 %r135, %r140
%r142 = zext i160 %r141 to i192
%r144 = getelementptr i32, i32* %r2, i32 5
%r145 = load i32, i32* %r144
%r146 = zext i32 %r145 to i192
%r147 = shl i192 %r146, 160
%r148 = or i192 %r142, %r147
%r149 = zext i192 %r148 to i224
%r151 = getelementptr i32, i32* %r2, i32 6
%r152 = load i32, i32* %r151
%r153 = zext i32 %r152 to i224
%r154 = shl i224 %r153, 192
%r155 = or i224 %r149, %r154
%r156 = zext i224 %r155 to i256
%r158 = getelementptr i32, i32* %r2, i32 7
%r159 = load i32, i32* %r158
%r160 = zext i32 %r159 to i256
%r161 = shl i256 %r160, 224
%r162 = or i256 %r156, %r161
%r163 = zext i256 %r162 to i288
%r165 = getelementptr i32, i32* %r2, i32 8
%r166 = load i32, i32* %r165
%r167 = zext i32 %r166 to i288
%r168 = shl i288 %r167, 256
%r169 = or i288 %r163, %r168
%r170 = zext i288 %r169 to i320
%r172 = getelementptr i32, i32* %r2, i32 9
%r173 = load i32, i32* %r172
%r174 = zext i32 %r173 to i320
%r175 = shl i320 %r174, 288
%r176 = or i320 %r170, %r175
%r177 = zext i320 %r176 to i352
%r179 = getelementptr i32, i32* %r2, i32 10
%r180 = load i32, i32* %r179
%r181 = zext i32 %r180 to i352
%r182 = shl i352 %r181, 320
%r183 = or i352 %r177, %r182
%r184 = zext i352 %r183 to i384
%r186 = getelementptr i32, i32* %r2, i32 11
%r187 = load i32, i32* %r186
%r188 = zext i32 %r187 to i384
%r189 = shl i384 %r188, 352
%r190 = or i384 %r184, %r189
%r191 = zext i384 %r190 to i416
%r193 = getelementptr i32, i32* %r2, i32 12
%r194 = load i32, i32* %r193
%r195 = zext i32 %r194 to i416
%r196 = shl i416 %r195, 384
%r197 = or i416 %r191, %r196
%r198 = zext i416 %r197 to i448
%r200 = getelementptr i32, i32* %r2, i32 13
%r201 = load i32, i32* %r200
%r202 = zext i32 %r201 to i448
%r203 = shl i448 %r202, 416
%r204 = or i448 %r198, %r203
%r205 = zext i448 %r204 to i480
%r207 = getelementptr i32, i32* %r2, i32 14
%r208 = load i32, i32* %r207
%r209 = zext i32 %r208 to i480
%r210 = shl i480 %r209, 448
%r211 = or i480 %r205, %r210
%r212 = zext i480 %r211 to i512
%r214 = getelementptr i32, i32* %r2, i32 15
%r215 = load i32, i32* %r214
%r216 = zext i32 %r215 to i512
%r217 = shl i512 %r216, 480
%r218 = or i512 %r212, %r217
%r219 = trunc i512 %r218 to i32
%r220 = mul i32 %r219, %r6
%r221 = call i544 @mulPv512x32(i32* %r3, i32 %r220)
%r223 = getelementptr i32, i32* %r2, i32 16
%r224 = load i32, i32* %r223
%r225 = zext i32 %r224 to i544
%r226 = shl i544 %r225, 512
%r227 = zext i512 %r218 to i544
%r228 = or i544 %r226, %r227
%r229 = zext i544 %r228 to i576
%r230 = zext i544 %r221 to i576
%r231 = add i576 %r229, %r230
%r232 = lshr i576 %r231, 32
%r233 = trunc i576 %r232 to i544
%r234 = lshr i544 %r233, 512
%r235 = trunc i544 %r234 to i32
%r236 = trunc i544 %r233 to i512
%r237 = trunc i512 %r236 to i32
%r238 = mul i32 %r237, %r6
%r239 = call i544 @mulPv512x32(i32* %r3, i32 %r238)
%r240 = zext i32 %r235 to i544
%r241 = shl i544 %r240, 512
%r242 = add i544 %r239, %r241
%r244 = getelementptr i32, i32* %r2, i32 17
%r245 = load i32, i32* %r244
%r246 = zext i32 %r245 to i544
%r247 = shl i544 %r246, 512
%r248 = zext i512 %r236 to i544
%r249 = or i544 %r247, %r248
%r250 = zext i544 %r249 to i576
%r251 = zext i544 %r242 to i576
%r252 = add i576 %r250, %r251
%r253 = lshr i576 %r252, 32
%r254 = trunc i576 %r253 to i544
%r255 = lshr i544 %r254, 512
%r256 = trunc i544 %r255 to i32
%r257 = trunc i544 %r254 to i512
%r258 = trunc i512 %r257 to i32
%r259 = mul i32 %r258, %r6
%r260 = call i544 @mulPv512x32(i32* %r3, i32 %r259)
%r261 = zext i32 %r256 to i544
%r262 = shl i544 %r261, 512
%r263 = add i544 %r260, %r262
%r265 = getelementptr i32, i32* %r2, i32 18
%r266 = load i32, i32* %r265
%r267 = zext i32 %r266 to i544
%r268 = shl i544 %r267, 512
%r269 = zext i512 %r257 to i544
%r270 = or i544 %r268, %r269
%r271 = zext i544 %r270 to i576
%r272 = zext i544 %r263 to i576
%r273 = add i576 %r271, %r272
%r274 = lshr i576 %r273, 32
%r275 = trunc i576 %r274 to i544
%r276 = lshr i544 %r275, 512
%r277 = trunc i544 %r276 to i32
%r278 = trunc i544 %r275 to i512
%r279 = trunc i512 %r278 to i32
%r280 = mul i32 %r279, %r6
%r281 = call i544 @mulPv512x32(i32* %r3, i32 %r280)
%r282 = zext i32 %r277 to i544
%r283 = shl i544 %r282, 512
%r284 = add i544 %r281, %r283
%r286 = getelementptr i32, i32* %r2, i32 19
%r287 = load i32, i32* %r286
%r288 = zext i32 %r287 to i544
%r289 = shl i544 %r288, 512
%r290 = zext i512 %r278 to i544
%r291 = or i544 %r289, %r290
%r292 = zext i544 %r291 to i576
%r293 = zext i544 %r284 to i576
%r294 = add i576 %r292, %r293
%r295 = lshr i576 %r294, 32
%r296 = trunc i576 %r295 to i544
%r297 = lshr i544 %r296, 512
%r298 = trunc i544 %r297 to i32
%r299 = trunc i544 %r296 to i512
%r300 = trunc i512 %r299 to i32
%r301 = mul i32 %r300, %r6
%r302 = call i544 @mulPv512x32(i32* %r3, i32 %r301)
%r303 = zext i32 %r298 to i544
%r304 = shl i544 %r303, 512
%r305 = add i544 %r302, %r304
%r307 = getelementptr i32, i32* %r2, i32 20
%r308 = load i32, i32* %r307
%r309 = zext i32 %r308 to i544
%r310 = shl i544 %r309, 512
%r311 = zext i512 %r299 to i544
%r312 = or i544 %r310, %r311
%r313 = zext i544 %r312 to i576
%r314 = zext i544 %r305 to i576
%r315 = add i576 %r313, %r314
%r316 = lshr i576 %r315, 32
%r317 = trunc i576 %r316 to i544
%r318 = lshr i544 %r317, 512
%r319 = trunc i544 %r318 to i32
%r320 = trunc i544 %r317 to i512
%r321 = trunc i512 %r320 to i32
%r322 = mul i32 %r321, %r6
%r323 = call i544 @mulPv512x32(i32* %r3, i32 %r322)
%r324 = zext i32 %r319 to i544
%r325 = shl i544 %r324, 512
%r326 = add i544 %r323, %r325
%r328 = getelementptr i32, i32* %r2, i32 21
%r329 = load i32, i32* %r328
%r330 = zext i32 %r329 to i544
%r331 = shl i544 %r330, 512
%r332 = zext i512 %r320 to i544
%r333 = or i544 %r331, %r332
%r334 = zext i544 %r333 to i576
%r335 = zext i544 %r326 to i576
%r336 = add i576 %r334, %r335
%r337 = lshr i576 %r336, 32
%r338 = trunc i576 %r337 to i544
%r339 = lshr i544 %r338, 512
%r340 = trunc i544 %r339 to i32
%r341 = trunc i544 %r338 to i512
%r342 = trunc i512 %r341 to i32
%r343 = mul i32 %r342, %r6
%r344 = call i544 @mulPv512x32(i32* %r3, i32 %r343)
%r345 = zext i32 %r340 to i544
%r346 = shl i544 %r345, 512
%r347 = add i544 %r344, %r346
%r349 = getelementptr i32, i32* %r2, i32 22
%r350 = load i32, i32* %r349
%r351 = zext i32 %r350 to i544
%r352 = shl i544 %r351, 512
%r353 = zext i512 %r341 to i544
%r354 = or i544 %r352, %r353
%r355 = zext i544 %r354 to i576
%r356 = zext i544 %r347 to i576
%r357 = add i576 %r355, %r356
%r358 = lshr i576 %r357, 32
%r359 = trunc i576 %r358 to i544
%r360 = lshr i544 %r359, 512
%r361 = trunc i544 %r360 to i32
%r362 = trunc i544 %r359 to i512
%r363 = trunc i512 %r362 to i32
%r364 = mul i32 %r363, %r6
%r365 = call i544 @mulPv512x32(i32* %r3, i32 %r364)
%r366 = zext i32 %r361 to i544
%r367 = shl i544 %r366, 512
%r368 = add i544 %r365, %r367
%r370 = getelementptr i32, i32* %r2, i32 23
%r371 = load i32, i32* %r370
%r372 = zext i32 %r371 to i544
%r373 = shl i544 %r372, 512
%r374 = zext i512 %r362 to i544
%r375 = or i544 %r373, %r374
%r376 = zext i544 %r375 to i576
%r377 = zext i544 %r368 to i576
%r378 = add i576 %r376, %r377
%r379 = lshr i576 %r378, 32
%r380 = trunc i576 %r379 to i544
%r381 = lshr i544 %r380, 512
%r382 = trunc i544 %r381 to i32
%r383 = trunc i544 %r380 to i512
%r384 = trunc i512 %r383 to i32
%r385 = mul i32 %r384, %r6
%r386 = call i544 @mulPv512x32(i32* %r3, i32 %r385)
%r387 = zext i32 %r382 to i544
%r388 = shl i544 %r387, 512
%r389 = add i544 %r386, %r388
%r391 = getelementptr i32, i32* %r2, i32 24
%r392 = load i32, i32* %r391
%r393 = zext i32 %r392 to i544
%r394 = shl i544 %r393, 512
%r395 = zext i512 %r383 to i544
%r396 = or i544 %r394, %r395
%r397 = zext i544 %r396 to i576
%r398 = zext i544 %r389 to i576
%r399 = add i576 %r397, %r398
%r400 = lshr i576 %r399, 32
%r401 = trunc i576 %r400 to i544
%r402 = lshr i544 %r401, 512
%r403 = trunc i544 %r402 to i32
%r404 = trunc i544 %r401 to i512
%r405 = trunc i512 %r404 to i32
%r406 = mul i32 %r405, %r6
%r407 = call i544 @mulPv512x32(i32* %r3, i32 %r406)
%r408 = zext i32 %r403 to i544
%r409 = shl i544 %r408, 512
%r410 = add i544 %r407, %r409
%r412 = getelementptr i32, i32* %r2, i32 25
%r413 = load i32, i32* %r412
%r414 = zext i32 %r413 to i544
%r415 = shl i544 %r414, 512
%r416 = zext i512 %r404 to i544
%r417 = or i544 %r415, %r416
%r418 = zext i544 %r417 to i576
%r419 = zext i544 %r410 to i576
%r420 = add i576 %r418, %r419
%r421 = lshr i576 %r420, 32
%r422 = trunc i576 %r421 to i544
%r423 = lshr i544 %r422, 512
%r424 = trunc i544 %r423 to i32
%r425 = trunc i544 %r422 to i512
%r426 = trunc i512 %r425 to i32
%r427 = mul i32 %r426, %r6
%r428 = call i544 @mulPv512x32(i32* %r3, i32 %r427)
%r429 = zext i32 %r424 to i544
%r430 = shl i544 %r429, 512
%r431 = add i544 %r428, %r430
%r433 = getelementptr i32, i32* %r2, i32 26
%r434 = load i32, i32* %r433
%r435 = zext i32 %r434 to i544
%r436 = shl i544 %r435, 512
%r437 = zext i512 %r425 to i544
%r438 = or i544 %r436, %r437
%r439 = zext i544 %r438 to i576
%r440 = zext i544 %r431 to i576
%r441 = add i576 %r439, %r440
%r442 = lshr i576 %r441, 32
%r443 = trunc i576 %r442 to i544
%r444 = lshr i544 %r443, 512
%r445 = trunc i544 %r444 to i32
%r446 = trunc i544 %r443 to i512
%r447 = trunc i512 %r446 to i32
%r448 = mul i32 %r447, %r6
%r449 = call i544 @mulPv512x32(i32* %r3, i32 %r448)
%r450 = zext i32 %r445 to i544
%r451 = shl i544 %r450, 512
%r452 = add i544 %r449, %r451
%r454 = getelementptr i32, i32* %r2, i32 27
%r455 = load i32, i32* %r454
%r456 = zext i32 %r455 to i544
%r457 = shl i544 %r456, 512
%r458 = zext i512 %r446 to i544
%r459 = or i544 %r457, %r458
%r460 = zext i544 %r459 to i576
%r461 = zext i544 %r452 to i576
%r462 = add i576 %r460, %r461
%r463 = lshr i576 %r462, 32
%r464 = trunc i576 %r463 to i544
%r465 = lshr i544 %r464, 512
%r466 = trunc i544 %r465 to i32
%r467 = trunc i544 %r464 to i512
%r468 = trunc i512 %r467 to i32
%r469 = mul i32 %r468, %r6
%r470 = call i544 @mulPv512x32(i32* %r3, i32 %r469)
%r471 = zext i32 %r466 to i544
%r472 = shl i544 %r471, 512
%r473 = add i544 %r470, %r472
%r475 = getelementptr i32, i32* %r2, i32 28
%r476 = load i32, i32* %r475
%r477 = zext i32 %r476 to i544
%r478 = shl i544 %r477, 512
%r479 = zext i512 %r467 to i544
%r480 = or i544 %r478, %r479
%r481 = zext i544 %r480 to i576
%r482 = zext i544 %r473 to i576
%r483 = add i576 %r481, %r482
%r484 = lshr i576 %r483, 32
%r485 = trunc i576 %r484 to i544
%r486 = lshr i544 %r485, 512
%r487 = trunc i544 %r486 to i32
%r488 = trunc i544 %r485 to i512
%r489 = trunc i512 %r488 to i32
%r490 = mul i32 %r489, %r6
%r491 = call i544 @mulPv512x32(i32* %r3, i32 %r490)
%r492 = zext i32 %r487 to i544
%r493 = shl i544 %r492, 512
%r494 = add i544 %r491, %r493
%r496 = getelementptr i32, i32* %r2, i32 29
%r497 = load i32, i32* %r496
%r498 = zext i32 %r497 to i544
%r499 = shl i544 %r498, 512
%r500 = zext i512 %r488 to i544
%r501 = or i544 %r499, %r500
%r502 = zext i544 %r501 to i576
%r503 = zext i544 %r494 to i576
%r504 = add i576 %r502, %r503
%r505 = lshr i576 %r504, 32
%r506 = trunc i576 %r505 to i544
%r507 = lshr i544 %r506, 512
%r508 = trunc i544 %r507 to i32
%r509 = trunc i544 %r506 to i512
%r510 = trunc i512 %r509 to i32
%r511 = mul i32 %r510, %r6
%r512 = call i544 @mulPv512x32(i32* %r3, i32 %r511)
%r513 = zext i32 %r508 to i544
%r514 = shl i544 %r513, 512
%r515 = add i544 %r512, %r514
%r517 = getelementptr i32, i32* %r2, i32 30
%r518 = load i32, i32* %r517
%r519 = zext i32 %r518 to i544
%r520 = shl i544 %r519, 512
%r521 = zext i512 %r509 to i544
%r522 = or i544 %r520, %r521
%r523 = zext i544 %r522 to i576
%r524 = zext i544 %r515 to i576
%r525 = add i576 %r523, %r524
%r526 = lshr i576 %r525, 32
%r527 = trunc i576 %r526 to i544
%r528 = lshr i544 %r527, 512
%r529 = trunc i544 %r528 to i32
%r530 = trunc i544 %r527 to i512
%r531 = trunc i512 %r530 to i32
%r532 = mul i32 %r531, %r6
%r533 = call i544 @mulPv512x32(i32* %r3, i32 %r532)
%r534 = zext i32 %r529 to i544
%r535 = shl i544 %r534, 512
%r536 = add i544 %r533, %r535
%r538 = getelementptr i32, i32* %r2, i32 31
%r539 = load i32, i32* %r538
%r540 = zext i32 %r539 to i544
%r541 = shl i544 %r540, 512
%r542 = zext i512 %r530 to i544
%r543 = or i544 %r541, %r542
%r544 = zext i544 %r543 to i576
%r545 = zext i544 %r536 to i576
%r546 = add i576 %r544, %r545
%r547 = lshr i576 %r546, 32
%r548 = trunc i576 %r547 to i544
%r549 = lshr i544 %r548, 512
%r550 = trunc i544 %r549 to i32
%r551 = trunc i544 %r548 to i512
%r552 = sub i512 %r551, %r112
%r553 = lshr i512 %r552, 511
%r554 = trunc i512 %r553 to i1
%r555 = select i1 %r554, i512 %r551, i512 %r552
%r557 = getelementptr i32, i32* %r1, i32 0
%r558 = trunc i512 %r555 to i32
store i32 %r558, i32* %r557
%r559 = lshr i512 %r555, 32
%r561 = getelementptr i32, i32* %r1, i32 1
%r562 = trunc i512 %r559 to i32
store i32 %r562, i32* %r561
%r563 = lshr i512 %r559, 32
%r565 = getelementptr i32, i32* %r1, i32 2
%r566 = trunc i512 %r563 to i32
store i32 %r566, i32* %r565
%r567 = lshr i512 %r563, 32
%r569 = getelementptr i32, i32* %r1, i32 3
%r570 = trunc i512 %r567 to i32
store i32 %r570, i32* %r569
%r571 = lshr i512 %r567, 32
%r573 = getelementptr i32, i32* %r1, i32 4
%r574 = trunc i512 %r571 to i32
store i32 %r574, i32* %r573
%r575 = lshr i512 %r571, 32
%r577 = getelementptr i32, i32* %r1, i32 5
%r578 = trunc i512 %r575 to i32
store i32 %r578, i32* %r577
%r579 = lshr i512 %r575, 32
%r581 = getelementptr i32, i32* %r1, i32 6
%r582 = trunc i512 %r579 to i32
store i32 %r582, i32* %r581
%r583 = lshr i512 %r579, 32
%r585 = getelementptr i32, i32* %r1, i32 7
%r586 = trunc i512 %r583 to i32
store i32 %r586, i32* %r585
%r587 = lshr i512 %r583, 32
%r589 = getelementptr i32, i32* %r1, i32 8
%r590 = trunc i512 %r587 to i32
store i32 %r590, i32* %r589
%r591 = lshr i512 %r587, 32
%r593 = getelementptr i32, i32* %r1, i32 9
%r594 = trunc i512 %r591 to i32
store i32 %r594, i32* %r593
%r595 = lshr i512 %r591, 32
%r597 = getelementptr i32, i32* %r1, i32 10
%r598 = trunc i512 %r595 to i32
store i32 %r598, i32* %r597
%r599 = lshr i512 %r595, 32
%r601 = getelementptr i32, i32* %r1, i32 11
%r602 = trunc i512 %r599 to i32
store i32 %r602, i32* %r601
%r603 = lshr i512 %r599, 32
%r605 = getelementptr i32, i32* %r1, i32 12
%r606 = trunc i512 %r603 to i32
store i32 %r606, i32* %r605
%r607 = lshr i512 %r603, 32
%r609 = getelementptr i32, i32* %r1, i32 13
%r610 = trunc i512 %r607 to i32
store i32 %r610, i32* %r609
%r611 = lshr i512 %r607, 32
%r613 = getelementptr i32, i32* %r1, i32 14
%r614 = trunc i512 %r611 to i32
store i32 %r614, i32* %r613
%r615 = lshr i512 %r611, 32
%r617 = getelementptr i32, i32* %r1, i32 15
%r618 = trunc i512 %r615 to i32
store i32 %r618, i32* %r617
ret void
}
define i32 @mcl_fp_addPre16L(i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r3
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r3, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r3, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r3, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r3, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r3, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r3, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r3, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r3, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r3, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r3, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r3, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = zext i384 %r82 to i416
%r85 = getelementptr i32, i32* %r3, i32 12
%r86 = load i32, i32* %r85
%r87 = zext i32 %r86 to i416
%r88 = shl i416 %r87, 384
%r89 = or i416 %r83, %r88
%r90 = zext i416 %r89 to i448
%r92 = getelementptr i32, i32* %r3, i32 13
%r93 = load i32, i32* %r92
%r94 = zext i32 %r93 to i448
%r95 = shl i448 %r94, 416
%r96 = or i448 %r90, %r95
%r97 = zext i448 %r96 to i480
%r99 = getelementptr i32, i32* %r3, i32 14
%r100 = load i32, i32* %r99
%r101 = zext i32 %r100 to i480
%r102 = shl i480 %r101, 448
%r103 = or i480 %r97, %r102
%r104 = zext i480 %r103 to i512
%r106 = getelementptr i32, i32* %r3, i32 15
%r107 = load i32, i32* %r106
%r108 = zext i32 %r107 to i512
%r109 = shl i512 %r108, 480
%r110 = or i512 %r104, %r109
%r111 = zext i512 %r110 to i544
%r112 = load i32, i32* %r4
%r113 = zext i32 %r112 to i64
%r115 = getelementptr i32, i32* %r4, i32 1
%r116 = load i32, i32* %r115
%r117 = zext i32 %r116 to i64
%r118 = shl i64 %r117, 32
%r119 = or i64 %r113, %r118
%r120 = zext i64 %r119 to i96
%r122 = getelementptr i32, i32* %r4, i32 2
%r123 = load i32, i32* %r122
%r124 = zext i32 %r123 to i96
%r125 = shl i96 %r124, 64
%r126 = or i96 %r120, %r125
%r127 = zext i96 %r126 to i128
%r129 = getelementptr i32, i32* %r4, i32 3
%r130 = load i32, i32* %r129
%r131 = zext i32 %r130 to i128
%r132 = shl i128 %r131, 96
%r133 = or i128 %r127, %r132
%r134 = zext i128 %r133 to i160
%r136 = getelementptr i32, i32* %r4, i32 4
%r137 = load i32, i32* %r136
%r138 = zext i32 %r137 to i160
%r139 = shl i160 %r138, 128
%r140 = or i160 %r134, %r139
%r141 = zext i160 %r140 to i192
%r143 = getelementptr i32, i32* %r4, i32 5
%r144 = load i32, i32* %r143
%r145 = zext i32 %r144 to i192
%r146 = shl i192 %r145, 160
%r147 = or i192 %r141, %r146
%r148 = zext i192 %r147 to i224
%r150 = getelementptr i32, i32* %r4, i32 6
%r151 = load i32, i32* %r150
%r152 = zext i32 %r151 to i224
%r153 = shl i224 %r152, 192
%r154 = or i224 %r148, %r153
%r155 = zext i224 %r154 to i256
%r157 = getelementptr i32, i32* %r4, i32 7
%r158 = load i32, i32* %r157
%r159 = zext i32 %r158 to i256
%r160 = shl i256 %r159, 224
%r161 = or i256 %r155, %r160
%r162 = zext i256 %r161 to i288
%r164 = getelementptr i32, i32* %r4, i32 8
%r165 = load i32, i32* %r164
%r166 = zext i32 %r165 to i288
%r167 = shl i288 %r166, 256
%r168 = or i288 %r162, %r167
%r169 = zext i288 %r168 to i320
%r171 = getelementptr i32, i32* %r4, i32 9
%r172 = load i32, i32* %r171
%r173 = zext i32 %r172 to i320
%r174 = shl i320 %r173, 288
%r175 = or i320 %r169, %r174
%r176 = zext i320 %r175 to i352
%r178 = getelementptr i32, i32* %r4, i32 10
%r179 = load i32, i32* %r178
%r180 = zext i32 %r179 to i352
%r181 = shl i352 %r180, 320
%r182 = or i352 %r176, %r181
%r183 = zext i352 %r182 to i384
%r185 = getelementptr i32, i32* %r4, i32 11
%r186 = load i32, i32* %r185
%r187 = zext i32 %r186 to i384
%r188 = shl i384 %r187, 352
%r189 = or i384 %r183, %r188
%r190 = zext i384 %r189 to i416
%r192 = getelementptr i32, i32* %r4, i32 12
%r193 = load i32, i32* %r192
%r194 = zext i32 %r193 to i416
%r195 = shl i416 %r194, 384
%r196 = or i416 %r190, %r195
%r197 = zext i416 %r196 to i448
%r199 = getelementptr i32, i32* %r4, i32 13
%r200 = load i32, i32* %r199
%r201 = zext i32 %r200 to i448
%r202 = shl i448 %r201, 416
%r203 = or i448 %r197, %r202
%r204 = zext i448 %r203 to i480
%r206 = getelementptr i32, i32* %r4, i32 14
%r207 = load i32, i32* %r206
%r208 = zext i32 %r207 to i480
%r209 = shl i480 %r208, 448
%r210 = or i480 %r204, %r209
%r211 = zext i480 %r210 to i512
%r213 = getelementptr i32, i32* %r4, i32 15
%r214 = load i32, i32* %r213
%r215 = zext i32 %r214 to i512
%r216 = shl i512 %r215, 480
%r217 = or i512 %r211, %r216
%r218 = zext i512 %r217 to i544
%r219 = add i544 %r111, %r218
%r220 = trunc i544 %r219 to i512
%r222 = getelementptr i32, i32* %r2, i32 0
%r223 = trunc i512 %r220 to i32
store i32 %r223, i32* %r222
%r224 = lshr i512 %r220, 32
%r226 = getelementptr i32, i32* %r2, i32 1
%r227 = trunc i512 %r224 to i32
store i32 %r227, i32* %r226
%r228 = lshr i512 %r224, 32
%r230 = getelementptr i32, i32* %r2, i32 2
%r231 = trunc i512 %r228 to i32
store i32 %r231, i32* %r230
%r232 = lshr i512 %r228, 32
%r234 = getelementptr i32, i32* %r2, i32 3
%r235 = trunc i512 %r232 to i32
store i32 %r235, i32* %r234
%r236 = lshr i512 %r232, 32
%r238 = getelementptr i32, i32* %r2, i32 4
%r239 = trunc i512 %r236 to i32
store i32 %r239, i32* %r238
%r240 = lshr i512 %r236, 32
%r242 = getelementptr i32, i32* %r2, i32 5
%r243 = trunc i512 %r240 to i32
store i32 %r243, i32* %r242
%r244 = lshr i512 %r240, 32
%r246 = getelementptr i32, i32* %r2, i32 6
%r247 = trunc i512 %r244 to i32
store i32 %r247, i32* %r246
%r248 = lshr i512 %r244, 32
%r250 = getelementptr i32, i32* %r2, i32 7
%r251 = trunc i512 %r248 to i32
store i32 %r251, i32* %r250
%r252 = lshr i512 %r248, 32
%r254 = getelementptr i32, i32* %r2, i32 8
%r255 = trunc i512 %r252 to i32
store i32 %r255, i32* %r254
%r256 = lshr i512 %r252, 32
%r258 = getelementptr i32, i32* %r2, i32 9
%r259 = trunc i512 %r256 to i32
store i32 %r259, i32* %r258
%r260 = lshr i512 %r256, 32
%r262 = getelementptr i32, i32* %r2, i32 10
%r263 = trunc i512 %r260 to i32
store i32 %r263, i32* %r262
%r264 = lshr i512 %r260, 32
%r266 = getelementptr i32, i32* %r2, i32 11
%r267 = trunc i512 %r264 to i32
store i32 %r267, i32* %r266
%r268 = lshr i512 %r264, 32
%r270 = getelementptr i32, i32* %r2, i32 12
%r271 = trunc i512 %r268 to i32
store i32 %r271, i32* %r270
%r272 = lshr i512 %r268, 32
%r274 = getelementptr i32, i32* %r2, i32 13
%r275 = trunc i512 %r272 to i32
store i32 %r275, i32* %r274
%r276 = lshr i512 %r272, 32
%r278 = getelementptr i32, i32* %r2, i32 14
%r279 = trunc i512 %r276 to i32
store i32 %r279, i32* %r278
%r280 = lshr i512 %r276, 32
%r282 = getelementptr i32, i32* %r2, i32 15
%r283 = trunc i512 %r280 to i32
store i32 %r283, i32* %r282
%r284 = lshr i544 %r219, 512
%r285 = trunc i544 %r284 to i32
ret i32 %r285
}
define i32 @mcl_fp_subPre16L(i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r3
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r3, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r3, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r3, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r3, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r3, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r3, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r3, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r3, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r3, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r3, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r3, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = zext i384 %r82 to i416
%r85 = getelementptr i32, i32* %r3, i32 12
%r86 = load i32, i32* %r85
%r87 = zext i32 %r86 to i416
%r88 = shl i416 %r87, 384
%r89 = or i416 %r83, %r88
%r90 = zext i416 %r89 to i448
%r92 = getelementptr i32, i32* %r3, i32 13
%r93 = load i32, i32* %r92
%r94 = zext i32 %r93 to i448
%r95 = shl i448 %r94, 416
%r96 = or i448 %r90, %r95
%r97 = zext i448 %r96 to i480
%r99 = getelementptr i32, i32* %r3, i32 14
%r100 = load i32, i32* %r99
%r101 = zext i32 %r100 to i480
%r102 = shl i480 %r101, 448
%r103 = or i480 %r97, %r102
%r104 = zext i480 %r103 to i512
%r106 = getelementptr i32, i32* %r3, i32 15
%r107 = load i32, i32* %r106
%r108 = zext i32 %r107 to i512
%r109 = shl i512 %r108, 480
%r110 = or i512 %r104, %r109
%r111 = zext i512 %r110 to i544
%r112 = load i32, i32* %r4
%r113 = zext i32 %r112 to i64
%r115 = getelementptr i32, i32* %r4, i32 1
%r116 = load i32, i32* %r115
%r117 = zext i32 %r116 to i64
%r118 = shl i64 %r117, 32
%r119 = or i64 %r113, %r118
%r120 = zext i64 %r119 to i96
%r122 = getelementptr i32, i32* %r4, i32 2
%r123 = load i32, i32* %r122
%r124 = zext i32 %r123 to i96
%r125 = shl i96 %r124, 64
%r126 = or i96 %r120, %r125
%r127 = zext i96 %r126 to i128
%r129 = getelementptr i32, i32* %r4, i32 3
%r130 = load i32, i32* %r129
%r131 = zext i32 %r130 to i128
%r132 = shl i128 %r131, 96
%r133 = or i128 %r127, %r132
%r134 = zext i128 %r133 to i160
%r136 = getelementptr i32, i32* %r4, i32 4
%r137 = load i32, i32* %r136
%r138 = zext i32 %r137 to i160
%r139 = shl i160 %r138, 128
%r140 = or i160 %r134, %r139
%r141 = zext i160 %r140 to i192
%r143 = getelementptr i32, i32* %r4, i32 5
%r144 = load i32, i32* %r143
%r145 = zext i32 %r144 to i192
%r146 = shl i192 %r145, 160
%r147 = or i192 %r141, %r146
%r148 = zext i192 %r147 to i224
%r150 = getelementptr i32, i32* %r4, i32 6
%r151 = load i32, i32* %r150
%r152 = zext i32 %r151 to i224
%r153 = shl i224 %r152, 192
%r154 = or i224 %r148, %r153
%r155 = zext i224 %r154 to i256
%r157 = getelementptr i32, i32* %r4, i32 7
%r158 = load i32, i32* %r157
%r159 = zext i32 %r158 to i256
%r160 = shl i256 %r159, 224
%r161 = or i256 %r155, %r160
%r162 = zext i256 %r161 to i288
%r164 = getelementptr i32, i32* %r4, i32 8
%r165 = load i32, i32* %r164
%r166 = zext i32 %r165 to i288
%r167 = shl i288 %r166, 256
%r168 = or i288 %r162, %r167
%r169 = zext i288 %r168 to i320
%r171 = getelementptr i32, i32* %r4, i32 9
%r172 = load i32, i32* %r171
%r173 = zext i32 %r172 to i320
%r174 = shl i320 %r173, 288
%r175 = or i320 %r169, %r174
%r176 = zext i320 %r175 to i352
%r178 = getelementptr i32, i32* %r4, i32 10
%r179 = load i32, i32* %r178
%r180 = zext i32 %r179 to i352
%r181 = shl i352 %r180, 320
%r182 = or i352 %r176, %r181
%r183 = zext i352 %r182 to i384
%r185 = getelementptr i32, i32* %r4, i32 11
%r186 = load i32, i32* %r185
%r187 = zext i32 %r186 to i384
%r188 = shl i384 %r187, 352
%r189 = or i384 %r183, %r188
%r190 = zext i384 %r189 to i416
%r192 = getelementptr i32, i32* %r4, i32 12
%r193 = load i32, i32* %r192
%r194 = zext i32 %r193 to i416
%r195 = shl i416 %r194, 384
%r196 = or i416 %r190, %r195
%r197 = zext i416 %r196 to i448
%r199 = getelementptr i32, i32* %r4, i32 13
%r200 = load i32, i32* %r199
%r201 = zext i32 %r200 to i448
%r202 = shl i448 %r201, 416
%r203 = or i448 %r197, %r202
%r204 = zext i448 %r203 to i480
%r206 = getelementptr i32, i32* %r4, i32 14
%r207 = load i32, i32* %r206
%r208 = zext i32 %r207 to i480
%r209 = shl i480 %r208, 448
%r210 = or i480 %r204, %r209
%r211 = zext i480 %r210 to i512
%r213 = getelementptr i32, i32* %r4, i32 15
%r214 = load i32, i32* %r213
%r215 = zext i32 %r214 to i512
%r216 = shl i512 %r215, 480
%r217 = or i512 %r211, %r216
%r218 = zext i512 %r217 to i544
%r219 = sub i544 %r111, %r218
%r220 = trunc i544 %r219 to i512
%r222 = getelementptr i32, i32* %r2, i32 0
%r223 = trunc i512 %r220 to i32
store i32 %r223, i32* %r222
%r224 = lshr i512 %r220, 32
%r226 = getelementptr i32, i32* %r2, i32 1
%r227 = trunc i512 %r224 to i32
store i32 %r227, i32* %r226
%r228 = lshr i512 %r224, 32
%r230 = getelementptr i32, i32* %r2, i32 2
%r231 = trunc i512 %r228 to i32
store i32 %r231, i32* %r230
%r232 = lshr i512 %r228, 32
%r234 = getelementptr i32, i32* %r2, i32 3
%r235 = trunc i512 %r232 to i32
store i32 %r235, i32* %r234
%r236 = lshr i512 %r232, 32
%r238 = getelementptr i32, i32* %r2, i32 4
%r239 = trunc i512 %r236 to i32
store i32 %r239, i32* %r238
%r240 = lshr i512 %r236, 32
%r242 = getelementptr i32, i32* %r2, i32 5
%r243 = trunc i512 %r240 to i32
store i32 %r243, i32* %r242
%r244 = lshr i512 %r240, 32
%r246 = getelementptr i32, i32* %r2, i32 6
%r247 = trunc i512 %r244 to i32
store i32 %r247, i32* %r246
%r248 = lshr i512 %r244, 32
%r250 = getelementptr i32, i32* %r2, i32 7
%r251 = trunc i512 %r248 to i32
store i32 %r251, i32* %r250
%r252 = lshr i512 %r248, 32
%r254 = getelementptr i32, i32* %r2, i32 8
%r255 = trunc i512 %r252 to i32
store i32 %r255, i32* %r254
%r256 = lshr i512 %r252, 32
%r258 = getelementptr i32, i32* %r2, i32 9
%r259 = trunc i512 %r256 to i32
store i32 %r259, i32* %r258
%r260 = lshr i512 %r256, 32
%r262 = getelementptr i32, i32* %r2, i32 10
%r263 = trunc i512 %r260 to i32
store i32 %r263, i32* %r262
%r264 = lshr i512 %r260, 32
%r266 = getelementptr i32, i32* %r2, i32 11
%r267 = trunc i512 %r264 to i32
store i32 %r267, i32* %r266
%r268 = lshr i512 %r264, 32
%r270 = getelementptr i32, i32* %r2, i32 12
%r271 = trunc i512 %r268 to i32
store i32 %r271, i32* %r270
%r272 = lshr i512 %r268, 32
%r274 = getelementptr i32, i32* %r2, i32 13
%r275 = trunc i512 %r272 to i32
store i32 %r275, i32* %r274
%r276 = lshr i512 %r272, 32
%r278 = getelementptr i32, i32* %r2, i32 14
%r279 = trunc i512 %r276 to i32
store i32 %r279, i32* %r278
%r280 = lshr i512 %r276, 32
%r282 = getelementptr i32, i32* %r2, i32 15
%r283 = trunc i512 %r280 to i32
store i32 %r283, i32* %r282
%r285 = lshr i544 %r219, 512
%r286 = trunc i544 %r285 to i32
%r287 = and i32 %r286, 1
ret i32 %r287
}
define void @mcl_fp_shr1_16L(i32* noalias  %r1, i32* noalias  %r2)
{
%r3 = load i32, i32* %r2
%r4 = zext i32 %r3 to i64
%r6 = getelementptr i32, i32* %r2, i32 1
%r7 = load i32, i32* %r6
%r8 = zext i32 %r7 to i64
%r9 = shl i64 %r8, 32
%r10 = or i64 %r4, %r9
%r11 = zext i64 %r10 to i96
%r13 = getelementptr i32, i32* %r2, i32 2
%r14 = load i32, i32* %r13
%r15 = zext i32 %r14 to i96
%r16 = shl i96 %r15, 64
%r17 = or i96 %r11, %r16
%r18 = zext i96 %r17 to i128
%r20 = getelementptr i32, i32* %r2, i32 3
%r21 = load i32, i32* %r20
%r22 = zext i32 %r21 to i128
%r23 = shl i128 %r22, 96
%r24 = or i128 %r18, %r23
%r25 = zext i128 %r24 to i160
%r27 = getelementptr i32, i32* %r2, i32 4
%r28 = load i32, i32* %r27
%r29 = zext i32 %r28 to i160
%r30 = shl i160 %r29, 128
%r31 = or i160 %r25, %r30
%r32 = zext i160 %r31 to i192
%r34 = getelementptr i32, i32* %r2, i32 5
%r35 = load i32, i32* %r34
%r36 = zext i32 %r35 to i192
%r37 = shl i192 %r36, 160
%r38 = or i192 %r32, %r37
%r39 = zext i192 %r38 to i224
%r41 = getelementptr i32, i32* %r2, i32 6
%r42 = load i32, i32* %r41
%r43 = zext i32 %r42 to i224
%r44 = shl i224 %r43, 192
%r45 = or i224 %r39, %r44
%r46 = zext i224 %r45 to i256
%r48 = getelementptr i32, i32* %r2, i32 7
%r49 = load i32, i32* %r48
%r50 = zext i32 %r49 to i256
%r51 = shl i256 %r50, 224
%r52 = or i256 %r46, %r51
%r53 = zext i256 %r52 to i288
%r55 = getelementptr i32, i32* %r2, i32 8
%r56 = load i32, i32* %r55
%r57 = zext i32 %r56 to i288
%r58 = shl i288 %r57, 256
%r59 = or i288 %r53, %r58
%r60 = zext i288 %r59 to i320
%r62 = getelementptr i32, i32* %r2, i32 9
%r63 = load i32, i32* %r62
%r64 = zext i32 %r63 to i320
%r65 = shl i320 %r64, 288
%r66 = or i320 %r60, %r65
%r67 = zext i320 %r66 to i352
%r69 = getelementptr i32, i32* %r2, i32 10
%r70 = load i32, i32* %r69
%r71 = zext i32 %r70 to i352
%r72 = shl i352 %r71, 320
%r73 = or i352 %r67, %r72
%r74 = zext i352 %r73 to i384
%r76 = getelementptr i32, i32* %r2, i32 11
%r77 = load i32, i32* %r76
%r78 = zext i32 %r77 to i384
%r79 = shl i384 %r78, 352
%r80 = or i384 %r74, %r79
%r81 = zext i384 %r80 to i416
%r83 = getelementptr i32, i32* %r2, i32 12
%r84 = load i32, i32* %r83
%r85 = zext i32 %r84 to i416
%r86 = shl i416 %r85, 384
%r87 = or i416 %r81, %r86
%r88 = zext i416 %r87 to i448
%r90 = getelementptr i32, i32* %r2, i32 13
%r91 = load i32, i32* %r90
%r92 = zext i32 %r91 to i448
%r93 = shl i448 %r92, 416
%r94 = or i448 %r88, %r93
%r95 = zext i448 %r94 to i480
%r97 = getelementptr i32, i32* %r2, i32 14
%r98 = load i32, i32* %r97
%r99 = zext i32 %r98 to i480
%r100 = shl i480 %r99, 448
%r101 = or i480 %r95, %r100
%r102 = zext i480 %r101 to i512
%r104 = getelementptr i32, i32* %r2, i32 15
%r105 = load i32, i32* %r104
%r106 = zext i32 %r105 to i512
%r107 = shl i512 %r106, 480
%r108 = or i512 %r102, %r107
%r109 = lshr i512 %r108, 1
%r111 = getelementptr i32, i32* %r1, i32 0
%r112 = trunc i512 %r109 to i32
store i32 %r112, i32* %r111
%r113 = lshr i512 %r109, 32
%r115 = getelementptr i32, i32* %r1, i32 1
%r116 = trunc i512 %r113 to i32
store i32 %r116, i32* %r115
%r117 = lshr i512 %r113, 32
%r119 = getelementptr i32, i32* %r1, i32 2
%r120 = trunc i512 %r117 to i32
store i32 %r120, i32* %r119
%r121 = lshr i512 %r117, 32
%r123 = getelementptr i32, i32* %r1, i32 3
%r124 = trunc i512 %r121 to i32
store i32 %r124, i32* %r123
%r125 = lshr i512 %r121, 32
%r127 = getelementptr i32, i32* %r1, i32 4
%r128 = trunc i512 %r125 to i32
store i32 %r128, i32* %r127
%r129 = lshr i512 %r125, 32
%r131 = getelementptr i32, i32* %r1, i32 5
%r132 = trunc i512 %r129 to i32
store i32 %r132, i32* %r131
%r133 = lshr i512 %r129, 32
%r135 = getelementptr i32, i32* %r1, i32 6
%r136 = trunc i512 %r133 to i32
store i32 %r136, i32* %r135
%r137 = lshr i512 %r133, 32
%r139 = getelementptr i32, i32* %r1, i32 7
%r140 = trunc i512 %r137 to i32
store i32 %r140, i32* %r139
%r141 = lshr i512 %r137, 32
%r143 = getelementptr i32, i32* %r1, i32 8
%r144 = trunc i512 %r141 to i32
store i32 %r144, i32* %r143
%r145 = lshr i512 %r141, 32
%r147 = getelementptr i32, i32* %r1, i32 9
%r148 = trunc i512 %r145 to i32
store i32 %r148, i32* %r147
%r149 = lshr i512 %r145, 32
%r151 = getelementptr i32, i32* %r1, i32 10
%r152 = trunc i512 %r149 to i32
store i32 %r152, i32* %r151
%r153 = lshr i512 %r149, 32
%r155 = getelementptr i32, i32* %r1, i32 11
%r156 = trunc i512 %r153 to i32
store i32 %r156, i32* %r155
%r157 = lshr i512 %r153, 32
%r159 = getelementptr i32, i32* %r1, i32 12
%r160 = trunc i512 %r157 to i32
store i32 %r160, i32* %r159
%r161 = lshr i512 %r157, 32
%r163 = getelementptr i32, i32* %r1, i32 13
%r164 = trunc i512 %r161 to i32
store i32 %r164, i32* %r163
%r165 = lshr i512 %r161, 32
%r167 = getelementptr i32, i32* %r1, i32 14
%r168 = trunc i512 %r165 to i32
store i32 %r168, i32* %r167
%r169 = lshr i512 %r165, 32
%r171 = getelementptr i32, i32* %r1, i32 15
%r172 = trunc i512 %r169 to i32
store i32 %r172, i32* %r171
ret void
}
define void @mcl_fp_add16L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r2, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r2, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r2, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r2, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = zext i384 %r82 to i416
%r85 = getelementptr i32, i32* %r2, i32 12
%r86 = load i32, i32* %r85
%r87 = zext i32 %r86 to i416
%r88 = shl i416 %r87, 384
%r89 = or i416 %r83, %r88
%r90 = zext i416 %r89 to i448
%r92 = getelementptr i32, i32* %r2, i32 13
%r93 = load i32, i32* %r92
%r94 = zext i32 %r93 to i448
%r95 = shl i448 %r94, 416
%r96 = or i448 %r90, %r95
%r97 = zext i448 %r96 to i480
%r99 = getelementptr i32, i32* %r2, i32 14
%r100 = load i32, i32* %r99
%r101 = zext i32 %r100 to i480
%r102 = shl i480 %r101, 448
%r103 = or i480 %r97, %r102
%r104 = zext i480 %r103 to i512
%r106 = getelementptr i32, i32* %r2, i32 15
%r107 = load i32, i32* %r106
%r108 = zext i32 %r107 to i512
%r109 = shl i512 %r108, 480
%r110 = or i512 %r104, %r109
%r111 = load i32, i32* %r3
%r112 = zext i32 %r111 to i64
%r114 = getelementptr i32, i32* %r3, i32 1
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i64
%r117 = shl i64 %r116, 32
%r118 = or i64 %r112, %r117
%r119 = zext i64 %r118 to i96
%r121 = getelementptr i32, i32* %r3, i32 2
%r122 = load i32, i32* %r121
%r123 = zext i32 %r122 to i96
%r124 = shl i96 %r123, 64
%r125 = or i96 %r119, %r124
%r126 = zext i96 %r125 to i128
%r128 = getelementptr i32, i32* %r3, i32 3
%r129 = load i32, i32* %r128
%r130 = zext i32 %r129 to i128
%r131 = shl i128 %r130, 96
%r132 = or i128 %r126, %r131
%r133 = zext i128 %r132 to i160
%r135 = getelementptr i32, i32* %r3, i32 4
%r136 = load i32, i32* %r135
%r137 = zext i32 %r136 to i160
%r138 = shl i160 %r137, 128
%r139 = or i160 %r133, %r138
%r140 = zext i160 %r139 to i192
%r142 = getelementptr i32, i32* %r3, i32 5
%r143 = load i32, i32* %r142
%r144 = zext i32 %r143 to i192
%r145 = shl i192 %r144, 160
%r146 = or i192 %r140, %r145
%r147 = zext i192 %r146 to i224
%r149 = getelementptr i32, i32* %r3, i32 6
%r150 = load i32, i32* %r149
%r151 = zext i32 %r150 to i224
%r152 = shl i224 %r151, 192
%r153 = or i224 %r147, %r152
%r154 = zext i224 %r153 to i256
%r156 = getelementptr i32, i32* %r3, i32 7
%r157 = load i32, i32* %r156
%r158 = zext i32 %r157 to i256
%r159 = shl i256 %r158, 224
%r160 = or i256 %r154, %r159
%r161 = zext i256 %r160 to i288
%r163 = getelementptr i32, i32* %r3, i32 8
%r164 = load i32, i32* %r163
%r165 = zext i32 %r164 to i288
%r166 = shl i288 %r165, 256
%r167 = or i288 %r161, %r166
%r168 = zext i288 %r167 to i320
%r170 = getelementptr i32, i32* %r3, i32 9
%r171 = load i32, i32* %r170
%r172 = zext i32 %r171 to i320
%r173 = shl i320 %r172, 288
%r174 = or i320 %r168, %r173
%r175 = zext i320 %r174 to i352
%r177 = getelementptr i32, i32* %r3, i32 10
%r178 = load i32, i32* %r177
%r179 = zext i32 %r178 to i352
%r180 = shl i352 %r179, 320
%r181 = or i352 %r175, %r180
%r182 = zext i352 %r181 to i384
%r184 = getelementptr i32, i32* %r3, i32 11
%r185 = load i32, i32* %r184
%r186 = zext i32 %r185 to i384
%r187 = shl i384 %r186, 352
%r188 = or i384 %r182, %r187
%r189 = zext i384 %r188 to i416
%r191 = getelementptr i32, i32* %r3, i32 12
%r192 = load i32, i32* %r191
%r193 = zext i32 %r192 to i416
%r194 = shl i416 %r193, 384
%r195 = or i416 %r189, %r194
%r196 = zext i416 %r195 to i448
%r198 = getelementptr i32, i32* %r3, i32 13
%r199 = load i32, i32* %r198
%r200 = zext i32 %r199 to i448
%r201 = shl i448 %r200, 416
%r202 = or i448 %r196, %r201
%r203 = zext i448 %r202 to i480
%r205 = getelementptr i32, i32* %r3, i32 14
%r206 = load i32, i32* %r205
%r207 = zext i32 %r206 to i480
%r208 = shl i480 %r207, 448
%r209 = or i480 %r203, %r208
%r210 = zext i480 %r209 to i512
%r212 = getelementptr i32, i32* %r3, i32 15
%r213 = load i32, i32* %r212
%r214 = zext i32 %r213 to i512
%r215 = shl i512 %r214, 480
%r216 = or i512 %r210, %r215
%r217 = zext i512 %r110 to i544
%r218 = zext i512 %r216 to i544
%r219 = add i544 %r217, %r218
%r220 = load i32, i32* %r4
%r221 = zext i32 %r220 to i64
%r223 = getelementptr i32, i32* %r4, i32 1
%r224 = load i32, i32* %r223
%r225 = zext i32 %r224 to i64
%r226 = shl i64 %r225, 32
%r227 = or i64 %r221, %r226
%r228 = zext i64 %r227 to i96
%r230 = getelementptr i32, i32* %r4, i32 2
%r231 = load i32, i32* %r230
%r232 = zext i32 %r231 to i96
%r233 = shl i96 %r232, 64
%r234 = or i96 %r228, %r233
%r235 = zext i96 %r234 to i128
%r237 = getelementptr i32, i32* %r4, i32 3
%r238 = load i32, i32* %r237
%r239 = zext i32 %r238 to i128
%r240 = shl i128 %r239, 96
%r241 = or i128 %r235, %r240
%r242 = zext i128 %r241 to i160
%r244 = getelementptr i32, i32* %r4, i32 4
%r245 = load i32, i32* %r244
%r246 = zext i32 %r245 to i160
%r247 = shl i160 %r246, 128
%r248 = or i160 %r242, %r247
%r249 = zext i160 %r248 to i192
%r251 = getelementptr i32, i32* %r4, i32 5
%r252 = load i32, i32* %r251
%r253 = zext i32 %r252 to i192
%r254 = shl i192 %r253, 160
%r255 = or i192 %r249, %r254
%r256 = zext i192 %r255 to i224
%r258 = getelementptr i32, i32* %r4, i32 6
%r259 = load i32, i32* %r258
%r260 = zext i32 %r259 to i224
%r261 = shl i224 %r260, 192
%r262 = or i224 %r256, %r261
%r263 = zext i224 %r262 to i256
%r265 = getelementptr i32, i32* %r4, i32 7
%r266 = load i32, i32* %r265
%r267 = zext i32 %r266 to i256
%r268 = shl i256 %r267, 224
%r269 = or i256 %r263, %r268
%r270 = zext i256 %r269 to i288
%r272 = getelementptr i32, i32* %r4, i32 8
%r273 = load i32, i32* %r272
%r274 = zext i32 %r273 to i288
%r275 = shl i288 %r274, 256
%r276 = or i288 %r270, %r275
%r277 = zext i288 %r276 to i320
%r279 = getelementptr i32, i32* %r4, i32 9
%r280 = load i32, i32* %r279
%r281 = zext i32 %r280 to i320
%r282 = shl i320 %r281, 288
%r283 = or i320 %r277, %r282
%r284 = zext i320 %r283 to i352
%r286 = getelementptr i32, i32* %r4, i32 10
%r287 = load i32, i32* %r286
%r288 = zext i32 %r287 to i352
%r289 = shl i352 %r288, 320
%r290 = or i352 %r284, %r289
%r291 = zext i352 %r290 to i384
%r293 = getelementptr i32, i32* %r4, i32 11
%r294 = load i32, i32* %r293
%r295 = zext i32 %r294 to i384
%r296 = shl i384 %r295, 352
%r297 = or i384 %r291, %r296
%r298 = zext i384 %r297 to i416
%r300 = getelementptr i32, i32* %r4, i32 12
%r301 = load i32, i32* %r300
%r302 = zext i32 %r301 to i416
%r303 = shl i416 %r302, 384
%r304 = or i416 %r298, %r303
%r305 = zext i416 %r304 to i448
%r307 = getelementptr i32, i32* %r4, i32 13
%r308 = load i32, i32* %r307
%r309 = zext i32 %r308 to i448
%r310 = shl i448 %r309, 416
%r311 = or i448 %r305, %r310
%r312 = zext i448 %r311 to i480
%r314 = getelementptr i32, i32* %r4, i32 14
%r315 = load i32, i32* %r314
%r316 = zext i32 %r315 to i480
%r317 = shl i480 %r316, 448
%r318 = or i480 %r312, %r317
%r319 = zext i480 %r318 to i512
%r321 = getelementptr i32, i32* %r4, i32 15
%r322 = load i32, i32* %r321
%r323 = zext i32 %r322 to i512
%r324 = shl i512 %r323, 480
%r325 = or i512 %r319, %r324
%r326 = zext i512 %r325 to i544
%r327 = sub i544 %r219, %r326
%r328 = lshr i544 %r327, 512
%r329 = trunc i544 %r328 to i1
%r330 = select i1 %r329, i544 %r219, i544 %r327
%r331 = trunc i544 %r330 to i512
%r333 = getelementptr i32, i32* %r1, i32 0
%r334 = trunc i512 %r331 to i32
store i32 %r334, i32* %r333
%r335 = lshr i512 %r331, 32
%r337 = getelementptr i32, i32* %r1, i32 1
%r338 = trunc i512 %r335 to i32
store i32 %r338, i32* %r337
%r339 = lshr i512 %r335, 32
%r341 = getelementptr i32, i32* %r1, i32 2
%r342 = trunc i512 %r339 to i32
store i32 %r342, i32* %r341
%r343 = lshr i512 %r339, 32
%r345 = getelementptr i32, i32* %r1, i32 3
%r346 = trunc i512 %r343 to i32
store i32 %r346, i32* %r345
%r347 = lshr i512 %r343, 32
%r349 = getelementptr i32, i32* %r1, i32 4
%r350 = trunc i512 %r347 to i32
store i32 %r350, i32* %r349
%r351 = lshr i512 %r347, 32
%r353 = getelementptr i32, i32* %r1, i32 5
%r354 = trunc i512 %r351 to i32
store i32 %r354, i32* %r353
%r355 = lshr i512 %r351, 32
%r357 = getelementptr i32, i32* %r1, i32 6
%r358 = trunc i512 %r355 to i32
store i32 %r358, i32* %r357
%r359 = lshr i512 %r355, 32
%r361 = getelementptr i32, i32* %r1, i32 7
%r362 = trunc i512 %r359 to i32
store i32 %r362, i32* %r361
%r363 = lshr i512 %r359, 32
%r365 = getelementptr i32, i32* %r1, i32 8
%r366 = trunc i512 %r363 to i32
store i32 %r366, i32* %r365
%r367 = lshr i512 %r363, 32
%r369 = getelementptr i32, i32* %r1, i32 9
%r370 = trunc i512 %r367 to i32
store i32 %r370, i32* %r369
%r371 = lshr i512 %r367, 32
%r373 = getelementptr i32, i32* %r1, i32 10
%r374 = trunc i512 %r371 to i32
store i32 %r374, i32* %r373
%r375 = lshr i512 %r371, 32
%r377 = getelementptr i32, i32* %r1, i32 11
%r378 = trunc i512 %r375 to i32
store i32 %r378, i32* %r377
%r379 = lshr i512 %r375, 32
%r381 = getelementptr i32, i32* %r1, i32 12
%r382 = trunc i512 %r379 to i32
store i32 %r382, i32* %r381
%r383 = lshr i512 %r379, 32
%r385 = getelementptr i32, i32* %r1, i32 13
%r386 = trunc i512 %r383 to i32
store i32 %r386, i32* %r385
%r387 = lshr i512 %r383, 32
%r389 = getelementptr i32, i32* %r1, i32 14
%r390 = trunc i512 %r387 to i32
store i32 %r390, i32* %r389
%r391 = lshr i512 %r387, 32
%r393 = getelementptr i32, i32* %r1, i32 15
%r394 = trunc i512 %r391 to i32
store i32 %r394, i32* %r393
ret void
}
define void @mcl_fp_addNF16L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r2, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r2, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r2, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r2, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = zext i384 %r82 to i416
%r85 = getelementptr i32, i32* %r2, i32 12
%r86 = load i32, i32* %r85
%r87 = zext i32 %r86 to i416
%r88 = shl i416 %r87, 384
%r89 = or i416 %r83, %r88
%r90 = zext i416 %r89 to i448
%r92 = getelementptr i32, i32* %r2, i32 13
%r93 = load i32, i32* %r92
%r94 = zext i32 %r93 to i448
%r95 = shl i448 %r94, 416
%r96 = or i448 %r90, %r95
%r97 = zext i448 %r96 to i480
%r99 = getelementptr i32, i32* %r2, i32 14
%r100 = load i32, i32* %r99
%r101 = zext i32 %r100 to i480
%r102 = shl i480 %r101, 448
%r103 = or i480 %r97, %r102
%r104 = zext i480 %r103 to i512
%r106 = getelementptr i32, i32* %r2, i32 15
%r107 = load i32, i32* %r106
%r108 = zext i32 %r107 to i512
%r109 = shl i512 %r108, 480
%r110 = or i512 %r104, %r109
%r111 = load i32, i32* %r3
%r112 = zext i32 %r111 to i64
%r114 = getelementptr i32, i32* %r3, i32 1
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i64
%r117 = shl i64 %r116, 32
%r118 = or i64 %r112, %r117
%r119 = zext i64 %r118 to i96
%r121 = getelementptr i32, i32* %r3, i32 2
%r122 = load i32, i32* %r121
%r123 = zext i32 %r122 to i96
%r124 = shl i96 %r123, 64
%r125 = or i96 %r119, %r124
%r126 = zext i96 %r125 to i128
%r128 = getelementptr i32, i32* %r3, i32 3
%r129 = load i32, i32* %r128
%r130 = zext i32 %r129 to i128
%r131 = shl i128 %r130, 96
%r132 = or i128 %r126, %r131
%r133 = zext i128 %r132 to i160
%r135 = getelementptr i32, i32* %r3, i32 4
%r136 = load i32, i32* %r135
%r137 = zext i32 %r136 to i160
%r138 = shl i160 %r137, 128
%r139 = or i160 %r133, %r138
%r140 = zext i160 %r139 to i192
%r142 = getelementptr i32, i32* %r3, i32 5
%r143 = load i32, i32* %r142
%r144 = zext i32 %r143 to i192
%r145 = shl i192 %r144, 160
%r146 = or i192 %r140, %r145
%r147 = zext i192 %r146 to i224
%r149 = getelementptr i32, i32* %r3, i32 6
%r150 = load i32, i32* %r149
%r151 = zext i32 %r150 to i224
%r152 = shl i224 %r151, 192
%r153 = or i224 %r147, %r152
%r154 = zext i224 %r153 to i256
%r156 = getelementptr i32, i32* %r3, i32 7
%r157 = load i32, i32* %r156
%r158 = zext i32 %r157 to i256
%r159 = shl i256 %r158, 224
%r160 = or i256 %r154, %r159
%r161 = zext i256 %r160 to i288
%r163 = getelementptr i32, i32* %r3, i32 8
%r164 = load i32, i32* %r163
%r165 = zext i32 %r164 to i288
%r166 = shl i288 %r165, 256
%r167 = or i288 %r161, %r166
%r168 = zext i288 %r167 to i320
%r170 = getelementptr i32, i32* %r3, i32 9
%r171 = load i32, i32* %r170
%r172 = zext i32 %r171 to i320
%r173 = shl i320 %r172, 288
%r174 = or i320 %r168, %r173
%r175 = zext i320 %r174 to i352
%r177 = getelementptr i32, i32* %r3, i32 10
%r178 = load i32, i32* %r177
%r179 = zext i32 %r178 to i352
%r180 = shl i352 %r179, 320
%r181 = or i352 %r175, %r180
%r182 = zext i352 %r181 to i384
%r184 = getelementptr i32, i32* %r3, i32 11
%r185 = load i32, i32* %r184
%r186 = zext i32 %r185 to i384
%r187 = shl i384 %r186, 352
%r188 = or i384 %r182, %r187
%r189 = zext i384 %r188 to i416
%r191 = getelementptr i32, i32* %r3, i32 12
%r192 = load i32, i32* %r191
%r193 = zext i32 %r192 to i416
%r194 = shl i416 %r193, 384
%r195 = or i416 %r189, %r194
%r196 = zext i416 %r195 to i448
%r198 = getelementptr i32, i32* %r3, i32 13
%r199 = load i32, i32* %r198
%r200 = zext i32 %r199 to i448
%r201 = shl i448 %r200, 416
%r202 = or i448 %r196, %r201
%r203 = zext i448 %r202 to i480
%r205 = getelementptr i32, i32* %r3, i32 14
%r206 = load i32, i32* %r205
%r207 = zext i32 %r206 to i480
%r208 = shl i480 %r207, 448
%r209 = or i480 %r203, %r208
%r210 = zext i480 %r209 to i512
%r212 = getelementptr i32, i32* %r3, i32 15
%r213 = load i32, i32* %r212
%r214 = zext i32 %r213 to i512
%r215 = shl i512 %r214, 480
%r216 = or i512 %r210, %r215
%r217 = add i512 %r110, %r216
%r218 = load i32, i32* %r4
%r219 = zext i32 %r218 to i64
%r221 = getelementptr i32, i32* %r4, i32 1
%r222 = load i32, i32* %r221
%r223 = zext i32 %r222 to i64
%r224 = shl i64 %r223, 32
%r225 = or i64 %r219, %r224
%r226 = zext i64 %r225 to i96
%r228 = getelementptr i32, i32* %r4, i32 2
%r229 = load i32, i32* %r228
%r230 = zext i32 %r229 to i96
%r231 = shl i96 %r230, 64
%r232 = or i96 %r226, %r231
%r233 = zext i96 %r232 to i128
%r235 = getelementptr i32, i32* %r4, i32 3
%r236 = load i32, i32* %r235
%r237 = zext i32 %r236 to i128
%r238 = shl i128 %r237, 96
%r239 = or i128 %r233, %r238
%r240 = zext i128 %r239 to i160
%r242 = getelementptr i32, i32* %r4, i32 4
%r243 = load i32, i32* %r242
%r244 = zext i32 %r243 to i160
%r245 = shl i160 %r244, 128
%r246 = or i160 %r240, %r245
%r247 = zext i160 %r246 to i192
%r249 = getelementptr i32, i32* %r4, i32 5
%r250 = load i32, i32* %r249
%r251 = zext i32 %r250 to i192
%r252 = shl i192 %r251, 160
%r253 = or i192 %r247, %r252
%r254 = zext i192 %r253 to i224
%r256 = getelementptr i32, i32* %r4, i32 6
%r257 = load i32, i32* %r256
%r258 = zext i32 %r257 to i224
%r259 = shl i224 %r258, 192
%r260 = or i224 %r254, %r259
%r261 = zext i224 %r260 to i256
%r263 = getelementptr i32, i32* %r4, i32 7
%r264 = load i32, i32* %r263
%r265 = zext i32 %r264 to i256
%r266 = shl i256 %r265, 224
%r267 = or i256 %r261, %r266
%r268 = zext i256 %r267 to i288
%r270 = getelementptr i32, i32* %r4, i32 8
%r271 = load i32, i32* %r270
%r272 = zext i32 %r271 to i288
%r273 = shl i288 %r272, 256
%r274 = or i288 %r268, %r273
%r275 = zext i288 %r274 to i320
%r277 = getelementptr i32, i32* %r4, i32 9
%r278 = load i32, i32* %r277
%r279 = zext i32 %r278 to i320
%r280 = shl i320 %r279, 288
%r281 = or i320 %r275, %r280
%r282 = zext i320 %r281 to i352
%r284 = getelementptr i32, i32* %r4, i32 10
%r285 = load i32, i32* %r284
%r286 = zext i32 %r285 to i352
%r287 = shl i352 %r286, 320
%r288 = or i352 %r282, %r287
%r289 = zext i352 %r288 to i384
%r291 = getelementptr i32, i32* %r4, i32 11
%r292 = load i32, i32* %r291
%r293 = zext i32 %r292 to i384
%r294 = shl i384 %r293, 352
%r295 = or i384 %r289, %r294
%r296 = zext i384 %r295 to i416
%r298 = getelementptr i32, i32* %r4, i32 12
%r299 = load i32, i32* %r298
%r300 = zext i32 %r299 to i416
%r301 = shl i416 %r300, 384
%r302 = or i416 %r296, %r301
%r303 = zext i416 %r302 to i448
%r305 = getelementptr i32, i32* %r4, i32 13
%r306 = load i32, i32* %r305
%r307 = zext i32 %r306 to i448
%r308 = shl i448 %r307, 416
%r309 = or i448 %r303, %r308
%r310 = zext i448 %r309 to i480
%r312 = getelementptr i32, i32* %r4, i32 14
%r313 = load i32, i32* %r312
%r314 = zext i32 %r313 to i480
%r315 = shl i480 %r314, 448
%r316 = or i480 %r310, %r315
%r317 = zext i480 %r316 to i512
%r319 = getelementptr i32, i32* %r4, i32 15
%r320 = load i32, i32* %r319
%r321 = zext i32 %r320 to i512
%r322 = shl i512 %r321, 480
%r323 = or i512 %r317, %r322
%r324 = sub i512 %r217, %r323
%r325 = lshr i512 %r324, 511
%r326 = trunc i512 %r325 to i1
%r327 = select i1 %r326, i512 %r217, i512 %r324
%r329 = getelementptr i32, i32* %r1, i32 0
%r330 = trunc i512 %r327 to i32
store i32 %r330, i32* %r329
%r331 = lshr i512 %r327, 32
%r333 = getelementptr i32, i32* %r1, i32 1
%r334 = trunc i512 %r331 to i32
store i32 %r334, i32* %r333
%r335 = lshr i512 %r331, 32
%r337 = getelementptr i32, i32* %r1, i32 2
%r338 = trunc i512 %r335 to i32
store i32 %r338, i32* %r337
%r339 = lshr i512 %r335, 32
%r341 = getelementptr i32, i32* %r1, i32 3
%r342 = trunc i512 %r339 to i32
store i32 %r342, i32* %r341
%r343 = lshr i512 %r339, 32
%r345 = getelementptr i32, i32* %r1, i32 4
%r346 = trunc i512 %r343 to i32
store i32 %r346, i32* %r345
%r347 = lshr i512 %r343, 32
%r349 = getelementptr i32, i32* %r1, i32 5
%r350 = trunc i512 %r347 to i32
store i32 %r350, i32* %r349
%r351 = lshr i512 %r347, 32
%r353 = getelementptr i32, i32* %r1, i32 6
%r354 = trunc i512 %r351 to i32
store i32 %r354, i32* %r353
%r355 = lshr i512 %r351, 32
%r357 = getelementptr i32, i32* %r1, i32 7
%r358 = trunc i512 %r355 to i32
store i32 %r358, i32* %r357
%r359 = lshr i512 %r355, 32
%r361 = getelementptr i32, i32* %r1, i32 8
%r362 = trunc i512 %r359 to i32
store i32 %r362, i32* %r361
%r363 = lshr i512 %r359, 32
%r365 = getelementptr i32, i32* %r1, i32 9
%r366 = trunc i512 %r363 to i32
store i32 %r366, i32* %r365
%r367 = lshr i512 %r363, 32
%r369 = getelementptr i32, i32* %r1, i32 10
%r370 = trunc i512 %r367 to i32
store i32 %r370, i32* %r369
%r371 = lshr i512 %r367, 32
%r373 = getelementptr i32, i32* %r1, i32 11
%r374 = trunc i512 %r371 to i32
store i32 %r374, i32* %r373
%r375 = lshr i512 %r371, 32
%r377 = getelementptr i32, i32* %r1, i32 12
%r378 = trunc i512 %r375 to i32
store i32 %r378, i32* %r377
%r379 = lshr i512 %r375, 32
%r381 = getelementptr i32, i32* %r1, i32 13
%r382 = trunc i512 %r379 to i32
store i32 %r382, i32* %r381
%r383 = lshr i512 %r379, 32
%r385 = getelementptr i32, i32* %r1, i32 14
%r386 = trunc i512 %r383 to i32
store i32 %r386, i32* %r385
%r387 = lshr i512 %r383, 32
%r389 = getelementptr i32, i32* %r1, i32 15
%r390 = trunc i512 %r387 to i32
store i32 %r390, i32* %r389
ret void
}
define void @mcl_fp_sub16L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r2, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r2, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r2, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r2, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = zext i384 %r82 to i416
%r85 = getelementptr i32, i32* %r2, i32 12
%r86 = load i32, i32* %r85
%r87 = zext i32 %r86 to i416
%r88 = shl i416 %r87, 384
%r89 = or i416 %r83, %r88
%r90 = zext i416 %r89 to i448
%r92 = getelementptr i32, i32* %r2, i32 13
%r93 = load i32, i32* %r92
%r94 = zext i32 %r93 to i448
%r95 = shl i448 %r94, 416
%r96 = or i448 %r90, %r95
%r97 = zext i448 %r96 to i480
%r99 = getelementptr i32, i32* %r2, i32 14
%r100 = load i32, i32* %r99
%r101 = zext i32 %r100 to i480
%r102 = shl i480 %r101, 448
%r103 = or i480 %r97, %r102
%r104 = zext i480 %r103 to i512
%r106 = getelementptr i32, i32* %r2, i32 15
%r107 = load i32, i32* %r106
%r108 = zext i32 %r107 to i512
%r109 = shl i512 %r108, 480
%r110 = or i512 %r104, %r109
%r111 = load i32, i32* %r3
%r112 = zext i32 %r111 to i64
%r114 = getelementptr i32, i32* %r3, i32 1
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i64
%r117 = shl i64 %r116, 32
%r118 = or i64 %r112, %r117
%r119 = zext i64 %r118 to i96
%r121 = getelementptr i32, i32* %r3, i32 2
%r122 = load i32, i32* %r121
%r123 = zext i32 %r122 to i96
%r124 = shl i96 %r123, 64
%r125 = or i96 %r119, %r124
%r126 = zext i96 %r125 to i128
%r128 = getelementptr i32, i32* %r3, i32 3
%r129 = load i32, i32* %r128
%r130 = zext i32 %r129 to i128
%r131 = shl i128 %r130, 96
%r132 = or i128 %r126, %r131
%r133 = zext i128 %r132 to i160
%r135 = getelementptr i32, i32* %r3, i32 4
%r136 = load i32, i32* %r135
%r137 = zext i32 %r136 to i160
%r138 = shl i160 %r137, 128
%r139 = or i160 %r133, %r138
%r140 = zext i160 %r139 to i192
%r142 = getelementptr i32, i32* %r3, i32 5
%r143 = load i32, i32* %r142
%r144 = zext i32 %r143 to i192
%r145 = shl i192 %r144, 160
%r146 = or i192 %r140, %r145
%r147 = zext i192 %r146 to i224
%r149 = getelementptr i32, i32* %r3, i32 6
%r150 = load i32, i32* %r149
%r151 = zext i32 %r150 to i224
%r152 = shl i224 %r151, 192
%r153 = or i224 %r147, %r152
%r154 = zext i224 %r153 to i256
%r156 = getelementptr i32, i32* %r3, i32 7
%r157 = load i32, i32* %r156
%r158 = zext i32 %r157 to i256
%r159 = shl i256 %r158, 224
%r160 = or i256 %r154, %r159
%r161 = zext i256 %r160 to i288
%r163 = getelementptr i32, i32* %r3, i32 8
%r164 = load i32, i32* %r163
%r165 = zext i32 %r164 to i288
%r166 = shl i288 %r165, 256
%r167 = or i288 %r161, %r166
%r168 = zext i288 %r167 to i320
%r170 = getelementptr i32, i32* %r3, i32 9
%r171 = load i32, i32* %r170
%r172 = zext i32 %r171 to i320
%r173 = shl i320 %r172, 288
%r174 = or i320 %r168, %r173
%r175 = zext i320 %r174 to i352
%r177 = getelementptr i32, i32* %r3, i32 10
%r178 = load i32, i32* %r177
%r179 = zext i32 %r178 to i352
%r180 = shl i352 %r179, 320
%r181 = or i352 %r175, %r180
%r182 = zext i352 %r181 to i384
%r184 = getelementptr i32, i32* %r3, i32 11
%r185 = load i32, i32* %r184
%r186 = zext i32 %r185 to i384
%r187 = shl i384 %r186, 352
%r188 = or i384 %r182, %r187
%r189 = zext i384 %r188 to i416
%r191 = getelementptr i32, i32* %r3, i32 12
%r192 = load i32, i32* %r191
%r193 = zext i32 %r192 to i416
%r194 = shl i416 %r193, 384
%r195 = or i416 %r189, %r194
%r196 = zext i416 %r195 to i448
%r198 = getelementptr i32, i32* %r3, i32 13
%r199 = load i32, i32* %r198
%r200 = zext i32 %r199 to i448
%r201 = shl i448 %r200, 416
%r202 = or i448 %r196, %r201
%r203 = zext i448 %r202 to i480
%r205 = getelementptr i32, i32* %r3, i32 14
%r206 = load i32, i32* %r205
%r207 = zext i32 %r206 to i480
%r208 = shl i480 %r207, 448
%r209 = or i480 %r203, %r208
%r210 = zext i480 %r209 to i512
%r212 = getelementptr i32, i32* %r3, i32 15
%r213 = load i32, i32* %r212
%r214 = zext i32 %r213 to i512
%r215 = shl i512 %r214, 480
%r216 = or i512 %r210, %r215
%r217 = zext i512 %r110 to i513
%r218 = zext i512 %r216 to i513
%r219 = sub i513 %r217, %r218
%r220 = lshr i513 %r219, 512
%r221 = trunc i513 %r220 to i1
%r222 = trunc i513 %r219 to i512
%r223 = load i32, i32* %r4
%r224 = zext i32 %r223 to i64
%r226 = getelementptr i32, i32* %r4, i32 1
%r227 = load i32, i32* %r226
%r228 = zext i32 %r227 to i64
%r229 = shl i64 %r228, 32
%r230 = or i64 %r224, %r229
%r231 = zext i64 %r230 to i96
%r233 = getelementptr i32, i32* %r4, i32 2
%r234 = load i32, i32* %r233
%r235 = zext i32 %r234 to i96
%r236 = shl i96 %r235, 64
%r237 = or i96 %r231, %r236
%r238 = zext i96 %r237 to i128
%r240 = getelementptr i32, i32* %r4, i32 3
%r241 = load i32, i32* %r240
%r242 = zext i32 %r241 to i128
%r243 = shl i128 %r242, 96
%r244 = or i128 %r238, %r243
%r245 = zext i128 %r244 to i160
%r247 = getelementptr i32, i32* %r4, i32 4
%r248 = load i32, i32* %r247
%r249 = zext i32 %r248 to i160
%r250 = shl i160 %r249, 128
%r251 = or i160 %r245, %r250
%r252 = zext i160 %r251 to i192
%r254 = getelementptr i32, i32* %r4, i32 5
%r255 = load i32, i32* %r254
%r256 = zext i32 %r255 to i192
%r257 = shl i192 %r256, 160
%r258 = or i192 %r252, %r257
%r259 = zext i192 %r258 to i224
%r261 = getelementptr i32, i32* %r4, i32 6
%r262 = load i32, i32* %r261
%r263 = zext i32 %r262 to i224
%r264 = shl i224 %r263, 192
%r265 = or i224 %r259, %r264
%r266 = zext i224 %r265 to i256
%r268 = getelementptr i32, i32* %r4, i32 7
%r269 = load i32, i32* %r268
%r270 = zext i32 %r269 to i256
%r271 = shl i256 %r270, 224
%r272 = or i256 %r266, %r271
%r273 = zext i256 %r272 to i288
%r275 = getelementptr i32, i32* %r4, i32 8
%r276 = load i32, i32* %r275
%r277 = zext i32 %r276 to i288
%r278 = shl i288 %r277, 256
%r279 = or i288 %r273, %r278
%r280 = zext i288 %r279 to i320
%r282 = getelementptr i32, i32* %r4, i32 9
%r283 = load i32, i32* %r282
%r284 = zext i32 %r283 to i320
%r285 = shl i320 %r284, 288
%r286 = or i320 %r280, %r285
%r287 = zext i320 %r286 to i352
%r289 = getelementptr i32, i32* %r4, i32 10
%r290 = load i32, i32* %r289
%r291 = zext i32 %r290 to i352
%r292 = shl i352 %r291, 320
%r293 = or i352 %r287, %r292
%r294 = zext i352 %r293 to i384
%r296 = getelementptr i32, i32* %r4, i32 11
%r297 = load i32, i32* %r296
%r298 = zext i32 %r297 to i384
%r299 = shl i384 %r298, 352
%r300 = or i384 %r294, %r299
%r301 = zext i384 %r300 to i416
%r303 = getelementptr i32, i32* %r4, i32 12
%r304 = load i32, i32* %r303
%r305 = zext i32 %r304 to i416
%r306 = shl i416 %r305, 384
%r307 = or i416 %r301, %r306
%r308 = zext i416 %r307 to i448
%r310 = getelementptr i32, i32* %r4, i32 13
%r311 = load i32, i32* %r310
%r312 = zext i32 %r311 to i448
%r313 = shl i448 %r312, 416
%r314 = or i448 %r308, %r313
%r315 = zext i448 %r314 to i480
%r317 = getelementptr i32, i32* %r4, i32 14
%r318 = load i32, i32* %r317
%r319 = zext i32 %r318 to i480
%r320 = shl i480 %r319, 448
%r321 = or i480 %r315, %r320
%r322 = zext i480 %r321 to i512
%r324 = getelementptr i32, i32* %r4, i32 15
%r325 = load i32, i32* %r324
%r326 = zext i32 %r325 to i512
%r327 = shl i512 %r326, 480
%r328 = or i512 %r322, %r327
%r330 = select i1 %r221, i512 %r328, i512 0
%r331 = add i512 %r222, %r330
%r333 = getelementptr i32, i32* %r1, i32 0
%r334 = trunc i512 %r331 to i32
store i32 %r334, i32* %r333
%r335 = lshr i512 %r331, 32
%r337 = getelementptr i32, i32* %r1, i32 1
%r338 = trunc i512 %r335 to i32
store i32 %r338, i32* %r337
%r339 = lshr i512 %r335, 32
%r341 = getelementptr i32, i32* %r1, i32 2
%r342 = trunc i512 %r339 to i32
store i32 %r342, i32* %r341
%r343 = lshr i512 %r339, 32
%r345 = getelementptr i32, i32* %r1, i32 3
%r346 = trunc i512 %r343 to i32
store i32 %r346, i32* %r345
%r347 = lshr i512 %r343, 32
%r349 = getelementptr i32, i32* %r1, i32 4
%r350 = trunc i512 %r347 to i32
store i32 %r350, i32* %r349
%r351 = lshr i512 %r347, 32
%r353 = getelementptr i32, i32* %r1, i32 5
%r354 = trunc i512 %r351 to i32
store i32 %r354, i32* %r353
%r355 = lshr i512 %r351, 32
%r357 = getelementptr i32, i32* %r1, i32 6
%r358 = trunc i512 %r355 to i32
store i32 %r358, i32* %r357
%r359 = lshr i512 %r355, 32
%r361 = getelementptr i32, i32* %r1, i32 7
%r362 = trunc i512 %r359 to i32
store i32 %r362, i32* %r361
%r363 = lshr i512 %r359, 32
%r365 = getelementptr i32, i32* %r1, i32 8
%r366 = trunc i512 %r363 to i32
store i32 %r366, i32* %r365
%r367 = lshr i512 %r363, 32
%r369 = getelementptr i32, i32* %r1, i32 9
%r370 = trunc i512 %r367 to i32
store i32 %r370, i32* %r369
%r371 = lshr i512 %r367, 32
%r373 = getelementptr i32, i32* %r1, i32 10
%r374 = trunc i512 %r371 to i32
store i32 %r374, i32* %r373
%r375 = lshr i512 %r371, 32
%r377 = getelementptr i32, i32* %r1, i32 11
%r378 = trunc i512 %r375 to i32
store i32 %r378, i32* %r377
%r379 = lshr i512 %r375, 32
%r381 = getelementptr i32, i32* %r1, i32 12
%r382 = trunc i512 %r379 to i32
store i32 %r382, i32* %r381
%r383 = lshr i512 %r379, 32
%r385 = getelementptr i32, i32* %r1, i32 13
%r386 = trunc i512 %r383 to i32
store i32 %r386, i32* %r385
%r387 = lshr i512 %r383, 32
%r389 = getelementptr i32, i32* %r1, i32 14
%r390 = trunc i512 %r387 to i32
store i32 %r390, i32* %r389
%r391 = lshr i512 %r387, 32
%r393 = getelementptr i32, i32* %r1, i32 15
%r394 = trunc i512 %r391 to i32
store i32 %r394, i32* %r393
ret void
}
define void @mcl_fp_subNF16L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r2, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r2, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r2, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r2, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = zext i384 %r82 to i416
%r85 = getelementptr i32, i32* %r2, i32 12
%r86 = load i32, i32* %r85
%r87 = zext i32 %r86 to i416
%r88 = shl i416 %r87, 384
%r89 = or i416 %r83, %r88
%r90 = zext i416 %r89 to i448
%r92 = getelementptr i32, i32* %r2, i32 13
%r93 = load i32, i32* %r92
%r94 = zext i32 %r93 to i448
%r95 = shl i448 %r94, 416
%r96 = or i448 %r90, %r95
%r97 = zext i448 %r96 to i480
%r99 = getelementptr i32, i32* %r2, i32 14
%r100 = load i32, i32* %r99
%r101 = zext i32 %r100 to i480
%r102 = shl i480 %r101, 448
%r103 = or i480 %r97, %r102
%r104 = zext i480 %r103 to i512
%r106 = getelementptr i32, i32* %r2, i32 15
%r107 = load i32, i32* %r106
%r108 = zext i32 %r107 to i512
%r109 = shl i512 %r108, 480
%r110 = or i512 %r104, %r109
%r111 = load i32, i32* %r3
%r112 = zext i32 %r111 to i64
%r114 = getelementptr i32, i32* %r3, i32 1
%r115 = load i32, i32* %r114
%r116 = zext i32 %r115 to i64
%r117 = shl i64 %r116, 32
%r118 = or i64 %r112, %r117
%r119 = zext i64 %r118 to i96
%r121 = getelementptr i32, i32* %r3, i32 2
%r122 = load i32, i32* %r121
%r123 = zext i32 %r122 to i96
%r124 = shl i96 %r123, 64
%r125 = or i96 %r119, %r124
%r126 = zext i96 %r125 to i128
%r128 = getelementptr i32, i32* %r3, i32 3
%r129 = load i32, i32* %r128
%r130 = zext i32 %r129 to i128
%r131 = shl i128 %r130, 96
%r132 = or i128 %r126, %r131
%r133 = zext i128 %r132 to i160
%r135 = getelementptr i32, i32* %r3, i32 4
%r136 = load i32, i32* %r135
%r137 = zext i32 %r136 to i160
%r138 = shl i160 %r137, 128
%r139 = or i160 %r133, %r138
%r140 = zext i160 %r139 to i192
%r142 = getelementptr i32, i32* %r3, i32 5
%r143 = load i32, i32* %r142
%r144 = zext i32 %r143 to i192
%r145 = shl i192 %r144, 160
%r146 = or i192 %r140, %r145
%r147 = zext i192 %r146 to i224
%r149 = getelementptr i32, i32* %r3, i32 6
%r150 = load i32, i32* %r149
%r151 = zext i32 %r150 to i224
%r152 = shl i224 %r151, 192
%r153 = or i224 %r147, %r152
%r154 = zext i224 %r153 to i256
%r156 = getelementptr i32, i32* %r3, i32 7
%r157 = load i32, i32* %r156
%r158 = zext i32 %r157 to i256
%r159 = shl i256 %r158, 224
%r160 = or i256 %r154, %r159
%r161 = zext i256 %r160 to i288
%r163 = getelementptr i32, i32* %r3, i32 8
%r164 = load i32, i32* %r163
%r165 = zext i32 %r164 to i288
%r166 = shl i288 %r165, 256
%r167 = or i288 %r161, %r166
%r168 = zext i288 %r167 to i320
%r170 = getelementptr i32, i32* %r3, i32 9
%r171 = load i32, i32* %r170
%r172 = zext i32 %r171 to i320
%r173 = shl i320 %r172, 288
%r174 = or i320 %r168, %r173
%r175 = zext i320 %r174 to i352
%r177 = getelementptr i32, i32* %r3, i32 10
%r178 = load i32, i32* %r177
%r179 = zext i32 %r178 to i352
%r180 = shl i352 %r179, 320
%r181 = or i352 %r175, %r180
%r182 = zext i352 %r181 to i384
%r184 = getelementptr i32, i32* %r3, i32 11
%r185 = load i32, i32* %r184
%r186 = zext i32 %r185 to i384
%r187 = shl i384 %r186, 352
%r188 = or i384 %r182, %r187
%r189 = zext i384 %r188 to i416
%r191 = getelementptr i32, i32* %r3, i32 12
%r192 = load i32, i32* %r191
%r193 = zext i32 %r192 to i416
%r194 = shl i416 %r193, 384
%r195 = or i416 %r189, %r194
%r196 = zext i416 %r195 to i448
%r198 = getelementptr i32, i32* %r3, i32 13
%r199 = load i32, i32* %r198
%r200 = zext i32 %r199 to i448
%r201 = shl i448 %r200, 416
%r202 = or i448 %r196, %r201
%r203 = zext i448 %r202 to i480
%r205 = getelementptr i32, i32* %r3, i32 14
%r206 = load i32, i32* %r205
%r207 = zext i32 %r206 to i480
%r208 = shl i480 %r207, 448
%r209 = or i480 %r203, %r208
%r210 = zext i480 %r209 to i512
%r212 = getelementptr i32, i32* %r3, i32 15
%r213 = load i32, i32* %r212
%r214 = zext i32 %r213 to i512
%r215 = shl i512 %r214, 480
%r216 = or i512 %r210, %r215
%r217 = sub i512 %r110, %r216
%r218 = lshr i512 %r217, 511
%r219 = trunc i512 %r218 to i1
%r220 = load i32, i32* %r4
%r221 = zext i32 %r220 to i64
%r223 = getelementptr i32, i32* %r4, i32 1
%r224 = load i32, i32* %r223
%r225 = zext i32 %r224 to i64
%r226 = shl i64 %r225, 32
%r227 = or i64 %r221, %r226
%r228 = zext i64 %r227 to i96
%r230 = getelementptr i32, i32* %r4, i32 2
%r231 = load i32, i32* %r230
%r232 = zext i32 %r231 to i96
%r233 = shl i96 %r232, 64
%r234 = or i96 %r228, %r233
%r235 = zext i96 %r234 to i128
%r237 = getelementptr i32, i32* %r4, i32 3
%r238 = load i32, i32* %r237
%r239 = zext i32 %r238 to i128
%r240 = shl i128 %r239, 96
%r241 = or i128 %r235, %r240
%r242 = zext i128 %r241 to i160
%r244 = getelementptr i32, i32* %r4, i32 4
%r245 = load i32, i32* %r244
%r246 = zext i32 %r245 to i160
%r247 = shl i160 %r246, 128
%r248 = or i160 %r242, %r247
%r249 = zext i160 %r248 to i192
%r251 = getelementptr i32, i32* %r4, i32 5
%r252 = load i32, i32* %r251
%r253 = zext i32 %r252 to i192
%r254 = shl i192 %r253, 160
%r255 = or i192 %r249, %r254
%r256 = zext i192 %r255 to i224
%r258 = getelementptr i32, i32* %r4, i32 6
%r259 = load i32, i32* %r258
%r260 = zext i32 %r259 to i224
%r261 = shl i224 %r260, 192
%r262 = or i224 %r256, %r261
%r263 = zext i224 %r262 to i256
%r265 = getelementptr i32, i32* %r4, i32 7
%r266 = load i32, i32* %r265
%r267 = zext i32 %r266 to i256
%r268 = shl i256 %r267, 224
%r269 = or i256 %r263, %r268
%r270 = zext i256 %r269 to i288
%r272 = getelementptr i32, i32* %r4, i32 8
%r273 = load i32, i32* %r272
%r274 = zext i32 %r273 to i288
%r275 = shl i288 %r274, 256
%r276 = or i288 %r270, %r275
%r277 = zext i288 %r276 to i320
%r279 = getelementptr i32, i32* %r4, i32 9
%r280 = load i32, i32* %r279
%r281 = zext i32 %r280 to i320
%r282 = shl i320 %r281, 288
%r283 = or i320 %r277, %r282
%r284 = zext i320 %r283 to i352
%r286 = getelementptr i32, i32* %r4, i32 10
%r287 = load i32, i32* %r286
%r288 = zext i32 %r287 to i352
%r289 = shl i352 %r288, 320
%r290 = or i352 %r284, %r289
%r291 = zext i352 %r290 to i384
%r293 = getelementptr i32, i32* %r4, i32 11
%r294 = load i32, i32* %r293
%r295 = zext i32 %r294 to i384
%r296 = shl i384 %r295, 352
%r297 = or i384 %r291, %r296
%r298 = zext i384 %r297 to i416
%r300 = getelementptr i32, i32* %r4, i32 12
%r301 = load i32, i32* %r300
%r302 = zext i32 %r301 to i416
%r303 = shl i416 %r302, 384
%r304 = or i416 %r298, %r303
%r305 = zext i416 %r304 to i448
%r307 = getelementptr i32, i32* %r4, i32 13
%r308 = load i32, i32* %r307
%r309 = zext i32 %r308 to i448
%r310 = shl i448 %r309, 416
%r311 = or i448 %r305, %r310
%r312 = zext i448 %r311 to i480
%r314 = getelementptr i32, i32* %r4, i32 14
%r315 = load i32, i32* %r314
%r316 = zext i32 %r315 to i480
%r317 = shl i480 %r316, 448
%r318 = or i480 %r312, %r317
%r319 = zext i480 %r318 to i512
%r321 = getelementptr i32, i32* %r4, i32 15
%r322 = load i32, i32* %r321
%r323 = zext i32 %r322 to i512
%r324 = shl i512 %r323, 480
%r325 = or i512 %r319, %r324
%r327 = select i1 %r219, i512 %r325, i512 0
%r328 = add i512 %r217, %r327
%r330 = getelementptr i32, i32* %r1, i32 0
%r331 = trunc i512 %r328 to i32
store i32 %r331, i32* %r330
%r332 = lshr i512 %r328, 32
%r334 = getelementptr i32, i32* %r1, i32 1
%r335 = trunc i512 %r332 to i32
store i32 %r335, i32* %r334
%r336 = lshr i512 %r332, 32
%r338 = getelementptr i32, i32* %r1, i32 2
%r339 = trunc i512 %r336 to i32
store i32 %r339, i32* %r338
%r340 = lshr i512 %r336, 32
%r342 = getelementptr i32, i32* %r1, i32 3
%r343 = trunc i512 %r340 to i32
store i32 %r343, i32* %r342
%r344 = lshr i512 %r340, 32
%r346 = getelementptr i32, i32* %r1, i32 4
%r347 = trunc i512 %r344 to i32
store i32 %r347, i32* %r346
%r348 = lshr i512 %r344, 32
%r350 = getelementptr i32, i32* %r1, i32 5
%r351 = trunc i512 %r348 to i32
store i32 %r351, i32* %r350
%r352 = lshr i512 %r348, 32
%r354 = getelementptr i32, i32* %r1, i32 6
%r355 = trunc i512 %r352 to i32
store i32 %r355, i32* %r354
%r356 = lshr i512 %r352, 32
%r358 = getelementptr i32, i32* %r1, i32 7
%r359 = trunc i512 %r356 to i32
store i32 %r359, i32* %r358
%r360 = lshr i512 %r356, 32
%r362 = getelementptr i32, i32* %r1, i32 8
%r363 = trunc i512 %r360 to i32
store i32 %r363, i32* %r362
%r364 = lshr i512 %r360, 32
%r366 = getelementptr i32, i32* %r1, i32 9
%r367 = trunc i512 %r364 to i32
store i32 %r367, i32* %r366
%r368 = lshr i512 %r364, 32
%r370 = getelementptr i32, i32* %r1, i32 10
%r371 = trunc i512 %r368 to i32
store i32 %r371, i32* %r370
%r372 = lshr i512 %r368, 32
%r374 = getelementptr i32, i32* %r1, i32 11
%r375 = trunc i512 %r372 to i32
store i32 %r375, i32* %r374
%r376 = lshr i512 %r372, 32
%r378 = getelementptr i32, i32* %r1, i32 12
%r379 = trunc i512 %r376 to i32
store i32 %r379, i32* %r378
%r380 = lshr i512 %r376, 32
%r382 = getelementptr i32, i32* %r1, i32 13
%r383 = trunc i512 %r380 to i32
store i32 %r383, i32* %r382
%r384 = lshr i512 %r380, 32
%r386 = getelementptr i32, i32* %r1, i32 14
%r387 = trunc i512 %r384 to i32
store i32 %r387, i32* %r386
%r388 = lshr i512 %r384, 32
%r390 = getelementptr i32, i32* %r1, i32 15
%r391 = trunc i512 %r388 to i32
store i32 %r391, i32* %r390
ret void
}
define void @mcl_fpDbl_add16L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r2, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r2, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r2, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r2, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = zext i384 %r82 to i416
%r85 = getelementptr i32, i32* %r2, i32 12
%r86 = load i32, i32* %r85
%r87 = zext i32 %r86 to i416
%r88 = shl i416 %r87, 384
%r89 = or i416 %r83, %r88
%r90 = zext i416 %r89 to i448
%r92 = getelementptr i32, i32* %r2, i32 13
%r93 = load i32, i32* %r92
%r94 = zext i32 %r93 to i448
%r95 = shl i448 %r94, 416
%r96 = or i448 %r90, %r95
%r97 = zext i448 %r96 to i480
%r99 = getelementptr i32, i32* %r2, i32 14
%r100 = load i32, i32* %r99
%r101 = zext i32 %r100 to i480
%r102 = shl i480 %r101, 448
%r103 = or i480 %r97, %r102
%r104 = zext i480 %r103 to i512
%r106 = getelementptr i32, i32* %r2, i32 15
%r107 = load i32, i32* %r106
%r108 = zext i32 %r107 to i512
%r109 = shl i512 %r108, 480
%r110 = or i512 %r104, %r109
%r111 = zext i512 %r110 to i544
%r113 = getelementptr i32, i32* %r2, i32 16
%r114 = load i32, i32* %r113
%r115 = zext i32 %r114 to i544
%r116 = shl i544 %r115, 512
%r117 = or i544 %r111, %r116
%r118 = zext i544 %r117 to i576
%r120 = getelementptr i32, i32* %r2, i32 17
%r121 = load i32, i32* %r120
%r122 = zext i32 %r121 to i576
%r123 = shl i576 %r122, 544
%r124 = or i576 %r118, %r123
%r125 = zext i576 %r124 to i608
%r127 = getelementptr i32, i32* %r2, i32 18
%r128 = load i32, i32* %r127
%r129 = zext i32 %r128 to i608
%r130 = shl i608 %r129, 576
%r131 = or i608 %r125, %r130
%r132 = zext i608 %r131 to i640
%r134 = getelementptr i32, i32* %r2, i32 19
%r135 = load i32, i32* %r134
%r136 = zext i32 %r135 to i640
%r137 = shl i640 %r136, 608
%r138 = or i640 %r132, %r137
%r139 = zext i640 %r138 to i672
%r141 = getelementptr i32, i32* %r2, i32 20
%r142 = load i32, i32* %r141
%r143 = zext i32 %r142 to i672
%r144 = shl i672 %r143, 640
%r145 = or i672 %r139, %r144
%r146 = zext i672 %r145 to i704
%r148 = getelementptr i32, i32* %r2, i32 21
%r149 = load i32, i32* %r148
%r150 = zext i32 %r149 to i704
%r151 = shl i704 %r150, 672
%r152 = or i704 %r146, %r151
%r153 = zext i704 %r152 to i736
%r155 = getelementptr i32, i32* %r2, i32 22
%r156 = load i32, i32* %r155
%r157 = zext i32 %r156 to i736
%r158 = shl i736 %r157, 704
%r159 = or i736 %r153, %r158
%r160 = zext i736 %r159 to i768
%r162 = getelementptr i32, i32* %r2, i32 23
%r163 = load i32, i32* %r162
%r164 = zext i32 %r163 to i768
%r165 = shl i768 %r164, 736
%r166 = or i768 %r160, %r165
%r167 = zext i768 %r166 to i800
%r169 = getelementptr i32, i32* %r2, i32 24
%r170 = load i32, i32* %r169
%r171 = zext i32 %r170 to i800
%r172 = shl i800 %r171, 768
%r173 = or i800 %r167, %r172
%r174 = zext i800 %r173 to i832
%r176 = getelementptr i32, i32* %r2, i32 25
%r177 = load i32, i32* %r176
%r178 = zext i32 %r177 to i832
%r179 = shl i832 %r178, 800
%r180 = or i832 %r174, %r179
%r181 = zext i832 %r180 to i864
%r183 = getelementptr i32, i32* %r2, i32 26
%r184 = load i32, i32* %r183
%r185 = zext i32 %r184 to i864
%r186 = shl i864 %r185, 832
%r187 = or i864 %r181, %r186
%r188 = zext i864 %r187 to i896
%r190 = getelementptr i32, i32* %r2, i32 27
%r191 = load i32, i32* %r190
%r192 = zext i32 %r191 to i896
%r193 = shl i896 %r192, 864
%r194 = or i896 %r188, %r193
%r195 = zext i896 %r194 to i928
%r197 = getelementptr i32, i32* %r2, i32 28
%r198 = load i32, i32* %r197
%r199 = zext i32 %r198 to i928
%r200 = shl i928 %r199, 896
%r201 = or i928 %r195, %r200
%r202 = zext i928 %r201 to i960
%r204 = getelementptr i32, i32* %r2, i32 29
%r205 = load i32, i32* %r204
%r206 = zext i32 %r205 to i960
%r207 = shl i960 %r206, 928
%r208 = or i960 %r202, %r207
%r209 = zext i960 %r208 to i992
%r211 = getelementptr i32, i32* %r2, i32 30
%r212 = load i32, i32* %r211
%r213 = zext i32 %r212 to i992
%r214 = shl i992 %r213, 960
%r215 = or i992 %r209, %r214
%r216 = zext i992 %r215 to i1024
%r218 = getelementptr i32, i32* %r2, i32 31
%r219 = load i32, i32* %r218
%r220 = zext i32 %r219 to i1024
%r221 = shl i1024 %r220, 992
%r222 = or i1024 %r216, %r221
%r223 = load i32, i32* %r3
%r224 = zext i32 %r223 to i64
%r226 = getelementptr i32, i32* %r3, i32 1
%r227 = load i32, i32* %r226
%r228 = zext i32 %r227 to i64
%r229 = shl i64 %r228, 32
%r230 = or i64 %r224, %r229
%r231 = zext i64 %r230 to i96
%r233 = getelementptr i32, i32* %r3, i32 2
%r234 = load i32, i32* %r233
%r235 = zext i32 %r234 to i96
%r236 = shl i96 %r235, 64
%r237 = or i96 %r231, %r236
%r238 = zext i96 %r237 to i128
%r240 = getelementptr i32, i32* %r3, i32 3
%r241 = load i32, i32* %r240
%r242 = zext i32 %r241 to i128
%r243 = shl i128 %r242, 96
%r244 = or i128 %r238, %r243
%r245 = zext i128 %r244 to i160
%r247 = getelementptr i32, i32* %r3, i32 4
%r248 = load i32, i32* %r247
%r249 = zext i32 %r248 to i160
%r250 = shl i160 %r249, 128
%r251 = or i160 %r245, %r250
%r252 = zext i160 %r251 to i192
%r254 = getelementptr i32, i32* %r3, i32 5
%r255 = load i32, i32* %r254
%r256 = zext i32 %r255 to i192
%r257 = shl i192 %r256, 160
%r258 = or i192 %r252, %r257
%r259 = zext i192 %r258 to i224
%r261 = getelementptr i32, i32* %r3, i32 6
%r262 = load i32, i32* %r261
%r263 = zext i32 %r262 to i224
%r264 = shl i224 %r263, 192
%r265 = or i224 %r259, %r264
%r266 = zext i224 %r265 to i256
%r268 = getelementptr i32, i32* %r3, i32 7
%r269 = load i32, i32* %r268
%r270 = zext i32 %r269 to i256
%r271 = shl i256 %r270, 224
%r272 = or i256 %r266, %r271
%r273 = zext i256 %r272 to i288
%r275 = getelementptr i32, i32* %r3, i32 8
%r276 = load i32, i32* %r275
%r277 = zext i32 %r276 to i288
%r278 = shl i288 %r277, 256
%r279 = or i288 %r273, %r278
%r280 = zext i288 %r279 to i320
%r282 = getelementptr i32, i32* %r3, i32 9
%r283 = load i32, i32* %r282
%r284 = zext i32 %r283 to i320
%r285 = shl i320 %r284, 288
%r286 = or i320 %r280, %r285
%r287 = zext i320 %r286 to i352
%r289 = getelementptr i32, i32* %r3, i32 10
%r290 = load i32, i32* %r289
%r291 = zext i32 %r290 to i352
%r292 = shl i352 %r291, 320
%r293 = or i352 %r287, %r292
%r294 = zext i352 %r293 to i384
%r296 = getelementptr i32, i32* %r3, i32 11
%r297 = load i32, i32* %r296
%r298 = zext i32 %r297 to i384
%r299 = shl i384 %r298, 352
%r300 = or i384 %r294, %r299
%r301 = zext i384 %r300 to i416
%r303 = getelementptr i32, i32* %r3, i32 12
%r304 = load i32, i32* %r303
%r305 = zext i32 %r304 to i416
%r306 = shl i416 %r305, 384
%r307 = or i416 %r301, %r306
%r308 = zext i416 %r307 to i448
%r310 = getelementptr i32, i32* %r3, i32 13
%r311 = load i32, i32* %r310
%r312 = zext i32 %r311 to i448
%r313 = shl i448 %r312, 416
%r314 = or i448 %r308, %r313
%r315 = zext i448 %r314 to i480
%r317 = getelementptr i32, i32* %r3, i32 14
%r318 = load i32, i32* %r317
%r319 = zext i32 %r318 to i480
%r320 = shl i480 %r319, 448
%r321 = or i480 %r315, %r320
%r322 = zext i480 %r321 to i512
%r324 = getelementptr i32, i32* %r3, i32 15
%r325 = load i32, i32* %r324
%r326 = zext i32 %r325 to i512
%r327 = shl i512 %r326, 480
%r328 = or i512 %r322, %r327
%r329 = zext i512 %r328 to i544
%r331 = getelementptr i32, i32* %r3, i32 16
%r332 = load i32, i32* %r331
%r333 = zext i32 %r332 to i544
%r334 = shl i544 %r333, 512
%r335 = or i544 %r329, %r334
%r336 = zext i544 %r335 to i576
%r338 = getelementptr i32, i32* %r3, i32 17
%r339 = load i32, i32* %r338
%r340 = zext i32 %r339 to i576
%r341 = shl i576 %r340, 544
%r342 = or i576 %r336, %r341
%r343 = zext i576 %r342 to i608
%r345 = getelementptr i32, i32* %r3, i32 18
%r346 = load i32, i32* %r345
%r347 = zext i32 %r346 to i608
%r348 = shl i608 %r347, 576
%r349 = or i608 %r343, %r348
%r350 = zext i608 %r349 to i640
%r352 = getelementptr i32, i32* %r3, i32 19
%r353 = load i32, i32* %r352
%r354 = zext i32 %r353 to i640
%r355 = shl i640 %r354, 608
%r356 = or i640 %r350, %r355
%r357 = zext i640 %r356 to i672
%r359 = getelementptr i32, i32* %r3, i32 20
%r360 = load i32, i32* %r359
%r361 = zext i32 %r360 to i672
%r362 = shl i672 %r361, 640
%r363 = or i672 %r357, %r362
%r364 = zext i672 %r363 to i704
%r366 = getelementptr i32, i32* %r3, i32 21
%r367 = load i32, i32* %r366
%r368 = zext i32 %r367 to i704
%r369 = shl i704 %r368, 672
%r370 = or i704 %r364, %r369
%r371 = zext i704 %r370 to i736
%r373 = getelementptr i32, i32* %r3, i32 22
%r374 = load i32, i32* %r373
%r375 = zext i32 %r374 to i736
%r376 = shl i736 %r375, 704
%r377 = or i736 %r371, %r376
%r378 = zext i736 %r377 to i768
%r380 = getelementptr i32, i32* %r3, i32 23
%r381 = load i32, i32* %r380
%r382 = zext i32 %r381 to i768
%r383 = shl i768 %r382, 736
%r384 = or i768 %r378, %r383
%r385 = zext i768 %r384 to i800
%r387 = getelementptr i32, i32* %r3, i32 24
%r388 = load i32, i32* %r387
%r389 = zext i32 %r388 to i800
%r390 = shl i800 %r389, 768
%r391 = or i800 %r385, %r390
%r392 = zext i800 %r391 to i832
%r394 = getelementptr i32, i32* %r3, i32 25
%r395 = load i32, i32* %r394
%r396 = zext i32 %r395 to i832
%r397 = shl i832 %r396, 800
%r398 = or i832 %r392, %r397
%r399 = zext i832 %r398 to i864
%r401 = getelementptr i32, i32* %r3, i32 26
%r402 = load i32, i32* %r401
%r403 = zext i32 %r402 to i864
%r404 = shl i864 %r403, 832
%r405 = or i864 %r399, %r404
%r406 = zext i864 %r405 to i896
%r408 = getelementptr i32, i32* %r3, i32 27
%r409 = load i32, i32* %r408
%r410 = zext i32 %r409 to i896
%r411 = shl i896 %r410, 864
%r412 = or i896 %r406, %r411
%r413 = zext i896 %r412 to i928
%r415 = getelementptr i32, i32* %r3, i32 28
%r416 = load i32, i32* %r415
%r417 = zext i32 %r416 to i928
%r418 = shl i928 %r417, 896
%r419 = or i928 %r413, %r418
%r420 = zext i928 %r419 to i960
%r422 = getelementptr i32, i32* %r3, i32 29
%r423 = load i32, i32* %r422
%r424 = zext i32 %r423 to i960
%r425 = shl i960 %r424, 928
%r426 = or i960 %r420, %r425
%r427 = zext i960 %r426 to i992
%r429 = getelementptr i32, i32* %r3, i32 30
%r430 = load i32, i32* %r429
%r431 = zext i32 %r430 to i992
%r432 = shl i992 %r431, 960
%r433 = or i992 %r427, %r432
%r434 = zext i992 %r433 to i1024
%r436 = getelementptr i32, i32* %r3, i32 31
%r437 = load i32, i32* %r436
%r438 = zext i32 %r437 to i1024
%r439 = shl i1024 %r438, 992
%r440 = or i1024 %r434, %r439
%r441 = zext i1024 %r222 to i1056
%r442 = zext i1024 %r440 to i1056
%r443 = add i1056 %r441, %r442
%r444 = trunc i1056 %r443 to i512
%r446 = getelementptr i32, i32* %r1, i32 0
%r447 = trunc i512 %r444 to i32
store i32 %r447, i32* %r446
%r448 = lshr i512 %r444, 32
%r450 = getelementptr i32, i32* %r1, i32 1
%r451 = trunc i512 %r448 to i32
store i32 %r451, i32* %r450
%r452 = lshr i512 %r448, 32
%r454 = getelementptr i32, i32* %r1, i32 2
%r455 = trunc i512 %r452 to i32
store i32 %r455, i32* %r454
%r456 = lshr i512 %r452, 32
%r458 = getelementptr i32, i32* %r1, i32 3
%r459 = trunc i512 %r456 to i32
store i32 %r459, i32* %r458
%r460 = lshr i512 %r456, 32
%r462 = getelementptr i32, i32* %r1, i32 4
%r463 = trunc i512 %r460 to i32
store i32 %r463, i32* %r462
%r464 = lshr i512 %r460, 32
%r466 = getelementptr i32, i32* %r1, i32 5
%r467 = trunc i512 %r464 to i32
store i32 %r467, i32* %r466
%r468 = lshr i512 %r464, 32
%r470 = getelementptr i32, i32* %r1, i32 6
%r471 = trunc i512 %r468 to i32
store i32 %r471, i32* %r470
%r472 = lshr i512 %r468, 32
%r474 = getelementptr i32, i32* %r1, i32 7
%r475 = trunc i512 %r472 to i32
store i32 %r475, i32* %r474
%r476 = lshr i512 %r472, 32
%r478 = getelementptr i32, i32* %r1, i32 8
%r479 = trunc i512 %r476 to i32
store i32 %r479, i32* %r478
%r480 = lshr i512 %r476, 32
%r482 = getelementptr i32, i32* %r1, i32 9
%r483 = trunc i512 %r480 to i32
store i32 %r483, i32* %r482
%r484 = lshr i512 %r480, 32
%r486 = getelementptr i32, i32* %r1, i32 10
%r487 = trunc i512 %r484 to i32
store i32 %r487, i32* %r486
%r488 = lshr i512 %r484, 32
%r490 = getelementptr i32, i32* %r1, i32 11
%r491 = trunc i512 %r488 to i32
store i32 %r491, i32* %r490
%r492 = lshr i512 %r488, 32
%r494 = getelementptr i32, i32* %r1, i32 12
%r495 = trunc i512 %r492 to i32
store i32 %r495, i32* %r494
%r496 = lshr i512 %r492, 32
%r498 = getelementptr i32, i32* %r1, i32 13
%r499 = trunc i512 %r496 to i32
store i32 %r499, i32* %r498
%r500 = lshr i512 %r496, 32
%r502 = getelementptr i32, i32* %r1, i32 14
%r503 = trunc i512 %r500 to i32
store i32 %r503, i32* %r502
%r504 = lshr i512 %r500, 32
%r506 = getelementptr i32, i32* %r1, i32 15
%r507 = trunc i512 %r504 to i32
store i32 %r507, i32* %r506
%r508 = lshr i1056 %r443, 512
%r509 = trunc i1056 %r508 to i544
%r510 = load i32, i32* %r4
%r511 = zext i32 %r510 to i64
%r513 = getelementptr i32, i32* %r4, i32 1
%r514 = load i32, i32* %r513
%r515 = zext i32 %r514 to i64
%r516 = shl i64 %r515, 32
%r517 = or i64 %r511, %r516
%r518 = zext i64 %r517 to i96
%r520 = getelementptr i32, i32* %r4, i32 2
%r521 = load i32, i32* %r520
%r522 = zext i32 %r521 to i96
%r523 = shl i96 %r522, 64
%r524 = or i96 %r518, %r523
%r525 = zext i96 %r524 to i128
%r527 = getelementptr i32, i32* %r4, i32 3
%r528 = load i32, i32* %r527
%r529 = zext i32 %r528 to i128
%r530 = shl i128 %r529, 96
%r531 = or i128 %r525, %r530
%r532 = zext i128 %r531 to i160
%r534 = getelementptr i32, i32* %r4, i32 4
%r535 = load i32, i32* %r534
%r536 = zext i32 %r535 to i160
%r537 = shl i160 %r536, 128
%r538 = or i160 %r532, %r537
%r539 = zext i160 %r538 to i192
%r541 = getelementptr i32, i32* %r4, i32 5
%r542 = load i32, i32* %r541
%r543 = zext i32 %r542 to i192
%r544 = shl i192 %r543, 160
%r545 = or i192 %r539, %r544
%r546 = zext i192 %r545 to i224
%r548 = getelementptr i32, i32* %r4, i32 6
%r549 = load i32, i32* %r548
%r550 = zext i32 %r549 to i224
%r551 = shl i224 %r550, 192
%r552 = or i224 %r546, %r551
%r553 = zext i224 %r552 to i256
%r555 = getelementptr i32, i32* %r4, i32 7
%r556 = load i32, i32* %r555
%r557 = zext i32 %r556 to i256
%r558 = shl i256 %r557, 224
%r559 = or i256 %r553, %r558
%r560 = zext i256 %r559 to i288
%r562 = getelementptr i32, i32* %r4, i32 8
%r563 = load i32, i32* %r562
%r564 = zext i32 %r563 to i288
%r565 = shl i288 %r564, 256
%r566 = or i288 %r560, %r565
%r567 = zext i288 %r566 to i320
%r569 = getelementptr i32, i32* %r4, i32 9
%r570 = load i32, i32* %r569
%r571 = zext i32 %r570 to i320
%r572 = shl i320 %r571, 288
%r573 = or i320 %r567, %r572
%r574 = zext i320 %r573 to i352
%r576 = getelementptr i32, i32* %r4, i32 10
%r577 = load i32, i32* %r576
%r578 = zext i32 %r577 to i352
%r579 = shl i352 %r578, 320
%r580 = or i352 %r574, %r579
%r581 = zext i352 %r580 to i384
%r583 = getelementptr i32, i32* %r4, i32 11
%r584 = load i32, i32* %r583
%r585 = zext i32 %r584 to i384
%r586 = shl i384 %r585, 352
%r587 = or i384 %r581, %r586
%r588 = zext i384 %r587 to i416
%r590 = getelementptr i32, i32* %r4, i32 12
%r591 = load i32, i32* %r590
%r592 = zext i32 %r591 to i416
%r593 = shl i416 %r592, 384
%r594 = or i416 %r588, %r593
%r595 = zext i416 %r594 to i448
%r597 = getelementptr i32, i32* %r4, i32 13
%r598 = load i32, i32* %r597
%r599 = zext i32 %r598 to i448
%r600 = shl i448 %r599, 416
%r601 = or i448 %r595, %r600
%r602 = zext i448 %r601 to i480
%r604 = getelementptr i32, i32* %r4, i32 14
%r605 = load i32, i32* %r604
%r606 = zext i32 %r605 to i480
%r607 = shl i480 %r606, 448
%r608 = or i480 %r602, %r607
%r609 = zext i480 %r608 to i512
%r611 = getelementptr i32, i32* %r4, i32 15
%r612 = load i32, i32* %r611
%r613 = zext i32 %r612 to i512
%r614 = shl i512 %r613, 480
%r615 = or i512 %r609, %r614
%r616 = zext i512 %r615 to i544
%r617 = sub i544 %r509, %r616
%r618 = lshr i544 %r617, 512
%r619 = trunc i544 %r618 to i1
%r620 = select i1 %r619, i544 %r509, i544 %r617
%r621 = trunc i544 %r620 to i512
%r623 = getelementptr i32, i32* %r1, i32 16
%r625 = getelementptr i32, i32* %r623, i32 0
%r626 = trunc i512 %r621 to i32
store i32 %r626, i32* %r625
%r627 = lshr i512 %r621, 32
%r629 = getelementptr i32, i32* %r623, i32 1
%r630 = trunc i512 %r627 to i32
store i32 %r630, i32* %r629
%r631 = lshr i512 %r627, 32
%r633 = getelementptr i32, i32* %r623, i32 2
%r634 = trunc i512 %r631 to i32
store i32 %r634, i32* %r633
%r635 = lshr i512 %r631, 32
%r637 = getelementptr i32, i32* %r623, i32 3
%r638 = trunc i512 %r635 to i32
store i32 %r638, i32* %r637
%r639 = lshr i512 %r635, 32
%r641 = getelementptr i32, i32* %r623, i32 4
%r642 = trunc i512 %r639 to i32
store i32 %r642, i32* %r641
%r643 = lshr i512 %r639, 32
%r645 = getelementptr i32, i32* %r623, i32 5
%r646 = trunc i512 %r643 to i32
store i32 %r646, i32* %r645
%r647 = lshr i512 %r643, 32
%r649 = getelementptr i32, i32* %r623, i32 6
%r650 = trunc i512 %r647 to i32
store i32 %r650, i32* %r649
%r651 = lshr i512 %r647, 32
%r653 = getelementptr i32, i32* %r623, i32 7
%r654 = trunc i512 %r651 to i32
store i32 %r654, i32* %r653
%r655 = lshr i512 %r651, 32
%r657 = getelementptr i32, i32* %r623, i32 8
%r658 = trunc i512 %r655 to i32
store i32 %r658, i32* %r657
%r659 = lshr i512 %r655, 32
%r661 = getelementptr i32, i32* %r623, i32 9
%r662 = trunc i512 %r659 to i32
store i32 %r662, i32* %r661
%r663 = lshr i512 %r659, 32
%r665 = getelementptr i32, i32* %r623, i32 10
%r666 = trunc i512 %r663 to i32
store i32 %r666, i32* %r665
%r667 = lshr i512 %r663, 32
%r669 = getelementptr i32, i32* %r623, i32 11
%r670 = trunc i512 %r667 to i32
store i32 %r670, i32* %r669
%r671 = lshr i512 %r667, 32
%r673 = getelementptr i32, i32* %r623, i32 12
%r674 = trunc i512 %r671 to i32
store i32 %r674, i32* %r673
%r675 = lshr i512 %r671, 32
%r677 = getelementptr i32, i32* %r623, i32 13
%r678 = trunc i512 %r675 to i32
store i32 %r678, i32* %r677
%r679 = lshr i512 %r675, 32
%r681 = getelementptr i32, i32* %r623, i32 14
%r682 = trunc i512 %r679 to i32
store i32 %r682, i32* %r681
%r683 = lshr i512 %r679, 32
%r685 = getelementptr i32, i32* %r623, i32 15
%r686 = trunc i512 %r683 to i32
store i32 %r686, i32* %r685
ret void
}
define void @mcl_fpDbl_sub16L(i32* noalias  %r1, i32* noalias  %r2, i32* noalias  %r3, i32* noalias  %r4)
{
%r5 = load i32, i32* %r2
%r6 = zext i32 %r5 to i64
%r8 = getelementptr i32, i32* %r2, i32 1
%r9 = load i32, i32* %r8
%r10 = zext i32 %r9 to i64
%r11 = shl i64 %r10, 32
%r12 = or i64 %r6, %r11
%r13 = zext i64 %r12 to i96
%r15 = getelementptr i32, i32* %r2, i32 2
%r16 = load i32, i32* %r15
%r17 = zext i32 %r16 to i96
%r18 = shl i96 %r17, 64
%r19 = or i96 %r13, %r18
%r20 = zext i96 %r19 to i128
%r22 = getelementptr i32, i32* %r2, i32 3
%r23 = load i32, i32* %r22
%r24 = zext i32 %r23 to i128
%r25 = shl i128 %r24, 96
%r26 = or i128 %r20, %r25
%r27 = zext i128 %r26 to i160
%r29 = getelementptr i32, i32* %r2, i32 4
%r30 = load i32, i32* %r29
%r31 = zext i32 %r30 to i160
%r32 = shl i160 %r31, 128
%r33 = or i160 %r27, %r32
%r34 = zext i160 %r33 to i192
%r36 = getelementptr i32, i32* %r2, i32 5
%r37 = load i32, i32* %r36
%r38 = zext i32 %r37 to i192
%r39 = shl i192 %r38, 160
%r40 = or i192 %r34, %r39
%r41 = zext i192 %r40 to i224
%r43 = getelementptr i32, i32* %r2, i32 6
%r44 = load i32, i32* %r43
%r45 = zext i32 %r44 to i224
%r46 = shl i224 %r45, 192
%r47 = or i224 %r41, %r46
%r48 = zext i224 %r47 to i256
%r50 = getelementptr i32, i32* %r2, i32 7
%r51 = load i32, i32* %r50
%r52 = zext i32 %r51 to i256
%r53 = shl i256 %r52, 224
%r54 = or i256 %r48, %r53
%r55 = zext i256 %r54 to i288
%r57 = getelementptr i32, i32* %r2, i32 8
%r58 = load i32, i32* %r57
%r59 = zext i32 %r58 to i288
%r60 = shl i288 %r59, 256
%r61 = or i288 %r55, %r60
%r62 = zext i288 %r61 to i320
%r64 = getelementptr i32, i32* %r2, i32 9
%r65 = load i32, i32* %r64
%r66 = zext i32 %r65 to i320
%r67 = shl i320 %r66, 288
%r68 = or i320 %r62, %r67
%r69 = zext i320 %r68 to i352
%r71 = getelementptr i32, i32* %r2, i32 10
%r72 = load i32, i32* %r71
%r73 = zext i32 %r72 to i352
%r74 = shl i352 %r73, 320
%r75 = or i352 %r69, %r74
%r76 = zext i352 %r75 to i384
%r78 = getelementptr i32, i32* %r2, i32 11
%r79 = load i32, i32* %r78
%r80 = zext i32 %r79 to i384
%r81 = shl i384 %r80, 352
%r82 = or i384 %r76, %r81
%r83 = zext i384 %r82 to i416
%r85 = getelementptr i32, i32* %r2, i32 12
%r86 = load i32, i32* %r85
%r87 = zext i32 %r86 to i416
%r88 = shl i416 %r87, 384
%r89 = or i416 %r83, %r88
%r90 = zext i416 %r89 to i448
%r92 = getelementptr i32, i32* %r2, i32 13
%r93 = load i32, i32* %r92
%r94 = zext i32 %r93 to i448
%r95 = shl i448 %r94, 416
%r96 = or i448 %r90, %r95
%r97 = zext i448 %r96 to i480
%r99 = getelementptr i32, i32* %r2, i32 14
%r100 = load i32, i32* %r99
%r101 = zext i32 %r100 to i480
%r102 = shl i480 %r101, 448
%r103 = or i480 %r97, %r102
%r104 = zext i480 %r103 to i512
%r106 = getelementptr i32, i32* %r2, i32 15
%r107 = load i32, i32* %r106
%r108 = zext i32 %r107 to i512
%r109 = shl i512 %r108, 480
%r110 = or i512 %r104, %r109
%r111 = zext i512 %r110 to i544
%r113 = getelementptr i32, i32* %r2, i32 16
%r114 = load i32, i32* %r113
%r115 = zext i32 %r114 to i544
%r116 = shl i544 %r115, 512
%r117 = or i544 %r111, %r116
%r118 = zext i544 %r117 to i576
%r120 = getelementptr i32, i32* %r2, i32 17
%r121 = load i32, i32* %r120
%r122 = zext i32 %r121 to i576
%r123 = shl i576 %r122, 544
%r124 = or i576 %r118, %r123
%r125 = zext i576 %r124 to i608
%r127 = getelementptr i32, i32* %r2, i32 18
%r128 = load i32, i32* %r127
%r129 = zext i32 %r128 to i608
%r130 = shl i608 %r129, 576
%r131 = or i608 %r125, %r130
%r132 = zext i608 %r131 to i640
%r134 = getelementptr i32, i32* %r2, i32 19
%r135 = load i32, i32* %r134
%r136 = zext i32 %r135 to i640
%r137 = shl i640 %r136, 608
%r138 = or i640 %r132, %r137
%r139 = zext i640 %r138 to i672
%r141 = getelementptr i32, i32* %r2, i32 20
%r142 = load i32, i32* %r141
%r143 = zext i32 %r142 to i672
%r144 = shl i672 %r143, 640
%r145 = or i672 %r139, %r144
%r146 = zext i672 %r145 to i704
%r148 = getelementptr i32, i32* %r2, i32 21
%r149 = load i32, i32* %r148
%r150 = zext i32 %r149 to i704
%r151 = shl i704 %r150, 672
%r152 = or i704 %r146, %r151
%r153 = zext i704 %r152 to i736
%r155 = getelementptr i32, i32* %r2, i32 22
%r156 = load i32, i32* %r155
%r157 = zext i32 %r156 to i736
%r158 = shl i736 %r157, 704
%r159 = or i736 %r153, %r158
%r160 = zext i736 %r159 to i768
%r162 = getelementptr i32, i32* %r2, i32 23
%r163 = load i32, i32* %r162
%r164 = zext i32 %r163 to i768
%r165 = shl i768 %r164, 736
%r166 = or i768 %r160, %r165
%r167 = zext i768 %r166 to i800
%r169 = getelementptr i32, i32* %r2, i32 24
%r170 = load i32, i32* %r169
%r171 = zext i32 %r170 to i800
%r172 = shl i800 %r171, 768
%r173 = or i800 %r167, %r172
%r174 = zext i800 %r173 to i832
%r176 = getelementptr i32, i32* %r2, i32 25
%r177 = load i32, i32* %r176
%r178 = zext i32 %r177 to i832
%r179 = shl i832 %r178, 800
%r180 = or i832 %r174, %r179
%r181 = zext i832 %r180 to i864
%r183 = getelementptr i32, i32* %r2, i32 26
%r184 = load i32, i32* %r183
%r185 = zext i32 %r184 to i864
%r186 = shl i864 %r185, 832
%r187 = or i864 %r181, %r186
%r188 = zext i864 %r187 to i896
%r190 = getelementptr i32, i32* %r2, i32 27
%r191 = load i32, i32* %r190
%r192 = zext i32 %r191 to i896
%r193 = shl i896 %r192, 864
%r194 = or i896 %r188, %r193
%r195 = zext i896 %r194 to i928
%r197 = getelementptr i32, i32* %r2, i32 28
%r198 = load i32, i32* %r197
%r199 = zext i32 %r198 to i928
%r200 = shl i928 %r199, 896
%r201 = or i928 %r195, %r200
%r202 = zext i928 %r201 to i960
%r204 = getelementptr i32, i32* %r2, i32 29
%r205 = load i32, i32* %r204
%r206 = zext i32 %r205 to i960
%r207 = shl i960 %r206, 928
%r208 = or i960 %r202, %r207
%r209 = zext i960 %r208 to i992
%r211 = getelementptr i32, i32* %r2, i32 30
%r212 = load i32, i32* %r211
%r213 = zext i32 %r212 to i992
%r214 = shl i992 %r213, 960
%r215 = or i992 %r209, %r214
%r216 = zext i992 %r215 to i1024
%r218 = getelementptr i32, i32* %r2, i32 31
%r219 = load i32, i32* %r218
%r220 = zext i32 %r219 to i1024
%r221 = shl i1024 %r220, 992
%r222 = or i1024 %r216, %r221
%r223 = load i32, i32* %r3
%r224 = zext i32 %r223 to i64
%r226 = getelementptr i32, i32* %r3, i32 1
%r227 = load i32, i32* %r226
%r228 = zext i32 %r227 to i64
%r229 = shl i64 %r228, 32
%r230 = or i64 %r224, %r229
%r231 = zext i64 %r230 to i96
%r233 = getelementptr i32, i32* %r3, i32 2
%r234 = load i32, i32* %r233
%r235 = zext i32 %r234 to i96
%r236 = shl i96 %r235, 64
%r237 = or i96 %r231, %r236
%r238 = zext i96 %r237 to i128
%r240 = getelementptr i32, i32* %r3, i32 3
%r241 = load i32, i32* %r240
%r242 = zext i32 %r241 to i128
%r243 = shl i128 %r242, 96
%r244 = or i128 %r238, %r243
%r245 = zext i128 %r244 to i160
%r247 = getelementptr i32, i32* %r3, i32 4
%r248 = load i32, i32* %r247
%r249 = zext i32 %r248 to i160
%r250 = shl i160 %r249, 128
%r251 = or i160 %r245, %r250
%r252 = zext i160 %r251 to i192
%r254 = getelementptr i32, i32* %r3, i32 5
%r255 = load i32, i32* %r254
%r256 = zext i32 %r255 to i192
%r257 = shl i192 %r256, 160
%r258 = or i192 %r252, %r257
%r259 = zext i192 %r258 to i224
%r261 = getelementptr i32, i32* %r3, i32 6
%r262 = load i32, i32* %r261
%r263 = zext i32 %r262 to i224
%r264 = shl i224 %r263, 192
%r265 = or i224 %r259, %r264
%r266 = zext i224 %r265 to i256
%r268 = getelementptr i32, i32* %r3, i32 7
%r269 = load i32, i32* %r268
%r270 = zext i32 %r269 to i256
%r271 = shl i256 %r270, 224
%r272 = or i256 %r266, %r271
%r273 = zext i256 %r272 to i288
%r275 = getelementptr i32, i32* %r3, i32 8
%r276 = load i32, i32* %r275
%r277 = zext i32 %r276 to i288
%r278 = shl i288 %r277, 256
%r279 = or i288 %r273, %r278
%r280 = zext i288 %r279 to i320
%r282 = getelementptr i32, i32* %r3, i32 9
%r283 = load i32, i32* %r282
%r284 = zext i32 %r283 to i320
%r285 = shl i320 %r284, 288
%r286 = or i320 %r280, %r285
%r287 = zext i320 %r286 to i352
%r289 = getelementptr i32, i32* %r3, i32 10
%r290 = load i32, i32* %r289
%r291 = zext i32 %r290 to i352
%r292 = shl i352 %r291, 320
%r293 = or i352 %r287, %r292
%r294 = zext i352 %r293 to i384
%r296 = getelementptr i32, i32* %r3, i32 11
%r297 = load i32, i32* %r296
%r298 = zext i32 %r297 to i384
%r299 = shl i384 %r298, 352
%r300 = or i384 %r294, %r299
%r301 = zext i384 %r300 to i416
%r303 = getelementptr i32, i32* %r3, i32 12
%r304 = load i32, i32* %r303
%r305 = zext i32 %r304 to i416
%r306 = shl i416 %r305, 384
%r307 = or i416 %r301, %r306
%r308 = zext i416 %r307 to i448
%r310 = getelementptr i32, i32* %r3, i32 13
%r311 = load i32, i32* %r310
%r312 = zext i32 %r311 to i448
%r313 = shl i448 %r312, 416
%r314 = or i448 %r308, %r313
%r315 = zext i448 %r314 to i480
%r317 = getelementptr i32, i32* %r3, i32 14
%r318 = load i32, i32* %r317
%r319 = zext i32 %r318 to i480
%r320 = shl i480 %r319, 448
%r321 = or i480 %r315, %r320
%r322 = zext i480 %r321 to i512
%r324 = getelementptr i32, i32* %r3, i32 15
%r325 = load i32, i32* %r324
%r326 = zext i32 %r325 to i512
%r327 = shl i512 %r326, 480
%r328 = or i512 %r322, %r327
%r329 = zext i512 %r328 to i544
%r331 = getelementptr i32, i32* %r3, i32 16
%r332 = load i32, i32* %r331
%r333 = zext i32 %r332 to i544
%r334 = shl i544 %r333, 512
%r335 = or i544 %r329, %r334
%r336 = zext i544 %r335 to i576
%r338 = getelementptr i32, i32* %r3, i32 17
%r339 = load i32, i32* %r338
%r340 = zext i32 %r339 to i576
%r341 = shl i576 %r340, 544
%r342 = or i576 %r336, %r341
%r343 = zext i576 %r342 to i608
%r345 = getelementptr i32, i32* %r3, i32 18
%r346 = load i32, i32* %r345
%r347 = zext i32 %r346 to i608
%r348 = shl i608 %r347, 576
%r349 = or i608 %r343, %r348
%r350 = zext i608 %r349 to i640
%r352 = getelementptr i32, i32* %r3, i32 19
%r353 = load i32, i32* %r352
%r354 = zext i32 %r353 to i640
%r355 = shl i640 %r354, 608
%r356 = or i640 %r350, %r355
%r357 = zext i640 %r356 to i672
%r359 = getelementptr i32, i32* %r3, i32 20
%r360 = load i32, i32* %r359
%r361 = zext i32 %r360 to i672
%r362 = shl i672 %r361, 640
%r363 = or i672 %r357, %r362
%r364 = zext i672 %r363 to i704
%r366 = getelementptr i32, i32* %r3, i32 21
%r367 = load i32, i32* %r366
%r368 = zext i32 %r367 to i704
%r369 = shl i704 %r368, 672
%r370 = or i704 %r364, %r369
%r371 = zext i704 %r370 to i736
%r373 = getelementptr i32, i32* %r3, i32 22
%r374 = load i32, i32* %r373
%r375 = zext i32 %r374 to i736
%r376 = shl i736 %r375, 704
%r377 = or i736 %r371, %r376
%r378 = zext i736 %r377 to i768
%r380 = getelementptr i32, i32* %r3, i32 23
%r381 = load i32, i32* %r380
%r382 = zext i32 %r381 to i768
%r383 = shl i768 %r382, 736
%r384 = or i768 %r378, %r383
%r385 = zext i768 %r384 to i800
%r387 = getelementptr i32, i32* %r3, i32 24
%r388 = load i32, i32* %r387
%r389 = zext i32 %r388 to i800
%r390 = shl i800 %r389, 768
%r391 = or i800 %r385, %r390
%r392 = zext i800 %r391 to i832
%r394 = getelementptr i32, i32* %r3, i32 25
%r395 = load i32, i32* %r394
%r396 = zext i32 %r395 to i832
%r397 = shl i832 %r396, 800
%r398 = or i832 %r392, %r397
%r399 = zext i832 %r398 to i864
%r401 = getelementptr i32, i32* %r3, i32 26
%r402 = load i32, i32* %r401
%r403 = zext i32 %r402 to i864
%r404 = shl i864 %r403, 832
%r405 = or i864 %r399, %r404
%r406 = zext i864 %r405 to i896
%r408 = getelementptr i32, i32* %r3, i32 27
%r409 = load i32, i32* %r408
%r410 = zext i32 %r409 to i896
%r411 = shl i896 %r410, 864
%r412 = or i896 %r406, %r411
%r413 = zext i896 %r412 to i928
%r415 = getelementptr i32, i32* %r3, i32 28
%r416 = load i32, i32* %r415
%r417 = zext i32 %r416 to i928
%r418 = shl i928 %r417, 896
%r419 = or i928 %r413, %r418
%r420 = zext i928 %r419 to i960
%r422 = getelementptr i32, i32* %r3, i32 29
%r423 = load i32, i32* %r422
%r424 = zext i32 %r423 to i960
%r425 = shl i960 %r424, 928
%r426 = or i960 %r420, %r425
%r427 = zext i960 %r426 to i992
%r429 = getelementptr i32, i32* %r3, i32 30
%r430 = load i32, i32* %r429
%r431 = zext i32 %r430 to i992
%r432 = shl i992 %r431, 960
%r433 = or i992 %r427, %r432
%r434 = zext i992 %r433 to i1024
%r436 = getelementptr i32, i32* %r3, i32 31
%r437 = load i32, i32* %r436
%r438 = zext i32 %r437 to i1024
%r439 = shl i1024 %r438, 992
%r440 = or i1024 %r434, %r439
%r441 = zext i1024 %r222 to i1056
%r442 = zext i1024 %r440 to i1056
%r443 = sub i1056 %r441, %r442
%r444 = trunc i1056 %r443 to i512
%r446 = getelementptr i32, i32* %r1, i32 0
%r447 = trunc i512 %r444 to i32
store i32 %r447, i32* %r446
%r448 = lshr i512 %r444, 32
%r450 = getelementptr i32, i32* %r1, i32 1
%r451 = trunc i512 %r448 to i32
store i32 %r451, i32* %r450
%r452 = lshr i512 %r448, 32
%r454 = getelementptr i32, i32* %r1, i32 2
%r455 = trunc i512 %r452 to i32
store i32 %r455, i32* %r454
%r456 = lshr i512 %r452, 32
%r458 = getelementptr i32, i32* %r1, i32 3
%r459 = trunc i512 %r456 to i32
store i32 %r459, i32* %r458
%r460 = lshr i512 %r456, 32
%r462 = getelementptr i32, i32* %r1, i32 4
%r463 = trunc i512 %r460 to i32
store i32 %r463, i32* %r462
%r464 = lshr i512 %r460, 32
%r466 = getelementptr i32, i32* %r1, i32 5
%r467 = trunc i512 %r464 to i32
store i32 %r467, i32* %r466
%r468 = lshr i512 %r464, 32
%r470 = getelementptr i32, i32* %r1, i32 6
%r471 = trunc i512 %r468 to i32
store i32 %r471, i32* %r470
%r472 = lshr i512 %r468, 32
%r474 = getelementptr i32, i32* %r1, i32 7
%r475 = trunc i512 %r472 to i32
store i32 %r475, i32* %r474
%r476 = lshr i512 %r472, 32
%r478 = getelementptr i32, i32* %r1, i32 8
%r479 = trunc i512 %r476 to i32
store i32 %r479, i32* %r478
%r480 = lshr i512 %r476, 32
%r482 = getelementptr i32, i32* %r1, i32 9
%r483 = trunc i512 %r480 to i32
store i32 %r483, i32* %r482
%r484 = lshr i512 %r480, 32
%r486 = getelementptr i32, i32* %r1, i32 10
%r487 = trunc i512 %r484 to i32
store i32 %r487, i32* %r486
%r488 = lshr i512 %r484, 32
%r490 = getelementptr i32, i32* %r1, i32 11
%r491 = trunc i512 %r488 to i32
store i32 %r491, i32* %r490
%r492 = lshr i512 %r488, 32
%r494 = getelementptr i32, i32* %r1, i32 12
%r495 = trunc i512 %r492 to i32
store i32 %r495, i32* %r494
%r496 = lshr i512 %r492, 32
%r498 = getelementptr i32, i32* %r1, i32 13
%r499 = trunc i512 %r496 to i32
store i32 %r499, i32* %r498
%r500 = lshr i512 %r496, 32
%r502 = getelementptr i32, i32* %r1, i32 14
%r503 = trunc i512 %r500 to i32
store i32 %r503, i32* %r502
%r504 = lshr i512 %r500, 32
%r506 = getelementptr i32, i32* %r1, i32 15
%r507 = trunc i512 %r504 to i32
store i32 %r507, i32* %r506
%r508 = lshr i1056 %r443, 512
%r509 = trunc i1056 %r508 to i512
%r510 = lshr i1056 %r443, 1024
%r511 = trunc i1056 %r510 to i1
%r512 = load i32, i32* %r4
%r513 = zext i32 %r512 to i64
%r515 = getelementptr i32, i32* %r4, i32 1
%r516 = load i32, i32* %r515
%r517 = zext i32 %r516 to i64
%r518 = shl i64 %r517, 32
%r519 = or i64 %r513, %r518
%r520 = zext i64 %r519 to i96
%r522 = getelementptr i32, i32* %r4, i32 2
%r523 = load i32, i32* %r522
%r524 = zext i32 %r523 to i96
%r525 = shl i96 %r524, 64
%r526 = or i96 %r520, %r525
%r527 = zext i96 %r526 to i128
%r529 = getelementptr i32, i32* %r4, i32 3
%r530 = load i32, i32* %r529
%r531 = zext i32 %r530 to i128
%r532 = shl i128 %r531, 96
%r533 = or i128 %r527, %r532
%r534 = zext i128 %r533 to i160
%r536 = getelementptr i32, i32* %r4, i32 4
%r537 = load i32, i32* %r536
%r538 = zext i32 %r537 to i160
%r539 = shl i160 %r538, 128
%r540 = or i160 %r534, %r539
%r541 = zext i160 %r540 to i192
%r543 = getelementptr i32, i32* %r4, i32 5
%r544 = load i32, i32* %r543
%r545 = zext i32 %r544 to i192
%r546 = shl i192 %r545, 160
%r547 = or i192 %r541, %r546
%r548 = zext i192 %r547 to i224
%r550 = getelementptr i32, i32* %r4, i32 6
%r551 = load i32, i32* %r550
%r552 = zext i32 %r551 to i224
%r553 = shl i224 %r552, 192
%r554 = or i224 %r548, %r553
%r555 = zext i224 %r554 to i256
%r557 = getelementptr i32, i32* %r4, i32 7
%r558 = load i32, i32* %r557
%r559 = zext i32 %r558 to i256
%r560 = shl i256 %r559, 224
%r561 = or i256 %r555, %r560
%r562 = zext i256 %r561 to i288
%r564 = getelementptr i32, i32* %r4, i32 8
%r565 = load i32, i32* %r564
%r566 = zext i32 %r565 to i288
%r567 = shl i288 %r566, 256
%r568 = or i288 %r562, %r567
%r569 = zext i288 %r568 to i320
%r571 = getelementptr i32, i32* %r4, i32 9
%r572 = load i32, i32* %r571
%r573 = zext i32 %r572 to i320
%r574 = shl i320 %r573, 288
%r575 = or i320 %r569, %r574
%r576 = zext i320 %r575 to i352
%r578 = getelementptr i32, i32* %r4, i32 10
%r579 = load i32, i32* %r578
%r580 = zext i32 %r579 to i352
%r581 = shl i352 %r580, 320
%r582 = or i352 %r576, %r581
%r583 = zext i352 %r582 to i384
%r585 = getelementptr i32, i32* %r4, i32 11
%r586 = load i32, i32* %r585
%r587 = zext i32 %r586 to i384
%r588 = shl i384 %r587, 352
%r589 = or i384 %r583, %r588
%r590 = zext i384 %r589 to i416
%r592 = getelementptr i32, i32* %r4, i32 12
%r593 = load i32, i32* %r592
%r594 = zext i32 %r593 to i416
%r595 = shl i416 %r594, 384
%r596 = or i416 %r590, %r595
%r597 = zext i416 %r596 to i448
%r599 = getelementptr i32, i32* %r4, i32 13
%r600 = load i32, i32* %r599
%r601 = zext i32 %r600 to i448
%r602 = shl i448 %r601, 416
%r603 = or i448 %r597, %r602
%r604 = zext i448 %r603 to i480
%r606 = getelementptr i32, i32* %r4, i32 14
%r607 = load i32, i32* %r606
%r608 = zext i32 %r607 to i480
%r609 = shl i480 %r608, 448
%r610 = or i480 %r604, %r609
%r611 = zext i480 %r610 to i512
%r613 = getelementptr i32, i32* %r4, i32 15
%r614 = load i32, i32* %r613
%r615 = zext i32 %r614 to i512
%r616 = shl i512 %r615, 480
%r617 = or i512 %r611, %r616
%r619 = select i1 %r511, i512 %r617, i512 0
%r620 = add i512 %r509, %r619
%r622 = getelementptr i32, i32* %r1, i32 16
%r624 = getelementptr i32, i32* %r622, i32 0
%r625 = trunc i512 %r620 to i32
store i32 %r625, i32* %r624
%r626 = lshr i512 %r620, 32
%r628 = getelementptr i32, i32* %r622, i32 1
%r629 = trunc i512 %r626 to i32
store i32 %r629, i32* %r628
%r630 = lshr i512 %r626, 32
%r632 = getelementptr i32, i32* %r622, i32 2
%r633 = trunc i512 %r630 to i32
store i32 %r633, i32* %r632
%r634 = lshr i512 %r630, 32
%r636 = getelementptr i32, i32* %r622, i32 3
%r637 = trunc i512 %r634 to i32
store i32 %r637, i32* %r636
%r638 = lshr i512 %r634, 32
%r640 = getelementptr i32, i32* %r622, i32 4
%r641 = trunc i512 %r638 to i32
store i32 %r641, i32* %r640
%r642 = lshr i512 %r638, 32
%r644 = getelementptr i32, i32* %r622, i32 5
%r645 = trunc i512 %r642 to i32
store i32 %r645, i32* %r644
%r646 = lshr i512 %r642, 32
%r648 = getelementptr i32, i32* %r622, i32 6
%r649 = trunc i512 %r646 to i32
store i32 %r649, i32* %r648
%r650 = lshr i512 %r646, 32
%r652 = getelementptr i32, i32* %r622, i32 7
%r653 = trunc i512 %r650 to i32
store i32 %r653, i32* %r652
%r654 = lshr i512 %r650, 32
%r656 = getelementptr i32, i32* %r622, i32 8
%r657 = trunc i512 %r654 to i32
store i32 %r657, i32* %r656
%r658 = lshr i512 %r654, 32
%r660 = getelementptr i32, i32* %r622, i32 9
%r661 = trunc i512 %r658 to i32
store i32 %r661, i32* %r660
%r662 = lshr i512 %r658, 32
%r664 = getelementptr i32, i32* %r622, i32 10
%r665 = trunc i512 %r662 to i32
store i32 %r665, i32* %r664
%r666 = lshr i512 %r662, 32
%r668 = getelementptr i32, i32* %r622, i32 11
%r669 = trunc i512 %r666 to i32
store i32 %r669, i32* %r668
%r670 = lshr i512 %r666, 32
%r672 = getelementptr i32, i32* %r622, i32 12
%r673 = trunc i512 %r670 to i32
store i32 %r673, i32* %r672
%r674 = lshr i512 %r670, 32
%r676 = getelementptr i32, i32* %r622, i32 13
%r677 = trunc i512 %r674 to i32
store i32 %r677, i32* %r676
%r678 = lshr i512 %r674, 32
%r680 = getelementptr i32, i32* %r622, i32 14
%r681 = trunc i512 %r678 to i32
store i32 %r681, i32* %r680
%r682 = lshr i512 %r678, 32
%r684 = getelementptr i32, i32* %r622, i32 15
%r685 = trunc i512 %r682 to i32
store i32 %r685, i32* %r684
ret void
}
